正确的转义字符组合以在javascript中注入PHP


Correct combination of escape characters to inject PHP in javascript?

我已经尝试了所有我知道的组合,但不能得到它的权利!

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

我想将$comments中包含的字符串传递给弹出窗口,但我似乎无法获得转义字符和连接的正确组合。请帮助!

TIA

编辑:这是我提到的字符串中的HTML。

$comments.= "<b>" . $row['comName'] . "</b><br><i>" . $row['comment'] . "</i><br><br>";

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

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

由于这是相当痛苦的,您应该真正尝试使用不引人注目的Javascript,它将Javascript与HTML分开。