0

我正在使用 php on_start 和 ob_get_contents 来回显 html 并存储在变量中。但是,当我 json 编码并检查输出时,它不会输出整个字符串。谁能帮忙指出我做错了什么

    ob_start();
   echo'<a href=\"javascript:pixlr.edit({image:\"http://mywebite.com/uploads/$photo\", title:\" $photoFileNameProper\", service:\"express\", exit:\"http://mywebsite.com/home\", method:\"get\", locktarget: \"true\", target:\"http://mywebsite.com/plixr.php\", locktitle :\"true\"});\" id=\"uploadedPhoto\" title=\"click to enhance photo\"><img src=\"images/editphotohover.png\"/></a>\"';

  $photo = ob_get_contents();
  ob_end_clean();

我只得到 json 编码输出中的结束锚标记

4

1 回答 1

1

这里不需要转义双引号

echo'<a href=\"javascri...

写这个:

echo'<a href="javascri...

单引号中保留双引号

此外,请注意在单引号内转义无效:

  • "\t"呈现为 TABULATOR 字符
  • '\t'呈现为\t

PHP 文档说明了这一点:

  • 要指定文字单引号,请使用反斜杠 (\) 对其进行转义。
  • 要在单引号之前或字符串末尾指定文字反斜杠,请将其加倍 (\\)。
  • 请注意,尝试转义任何其他字符也会打印反斜杠。

因此,这段代码怎么样:

echo'<a href="javascript:pixlr.edit(
                { image: \'http://mywebite.com/uploads/$photo\',
                  title: \'' . $photoFileNameProper . '\',
                  service: \'express\',
                  exit:\'http://mywebsite.com/home\',
                  method: \'get\',
                  locktarget: \'true\',
                  target: \'http://mywebsite.com/plixr.php\',
                  locktitle: \'true\'
                });"
         id = "uploadedPhoto" 
         title = "click to enhance photo">
         <img src="images/editphotohover.png"/>
         </a>'
        ;
于 2013-07-19T21:37:57.777 回答