将PHP注入javascript时转义字符的正确组合?

将PHP注入javascript时转义字符的正确组合?,php,Php,我已经尝试了所有我知道的组合,但都做不好 echo <<<EOF <a href="javascript:popup('$comments')">Popup!</a> EOF; echo您需要先将字符串转义为有效的Javascript/JSON以保留Javascript语法,然后转义Javascript以保留其嵌入的HTML语法: $js = sprintf('javascript:popup(%s)', json_encode(

我已经尝试了所有我知道的组合,但都做不好

echo  <<<EOF

     <a href="javascript:popup('$comments')">Popup!</a>   

EOF;

echo您需要先将字符串转义为有效的Javascript/JSON以保留Javascript语法,然后转义Javascript以保留其嵌入的HTML语法:

$js = sprintf('javascript:popup(%s)', json_encode($comments));
printf('<a href="%s">Popup!</a>', htmlspecialchars($js));
$js=sprintf('javascript:popup(%s)'),json_encode($comments));
printf(“”,htmlspecialchars($js));

由于这是一个相当痛苦的问题,您应该尝试使用,它将Javascript与HTML分开。

谢谢,这看起来很复杂,但仍然没有将其传递到弹出窗口。生成的HTML是什么?现在工作得很好。我没有打印它,而是将其设置为变量,并将其放入EOF字段。我会读一读那篇文章,看看我是否能将这种方法运用到我的工作流程中。我只是在学习Ajax和JQuery,它会导致一些混乱的代码。
$js = sprintf('javascript:popup(%s)', json_encode($comments));
printf('<a href="%s">Popup!</a>', htmlspecialchars($js));