正确组合转义字符以在JavaScript中注入PHP?

时间:2013-04-09 03:12:14

标签: php

我已经尝试过我所知道的所有组合,但无法正确使用它!

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>";

1 个答案:

答案 0 :(得分:1)

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

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

由于这非常痛苦,您应该尝试使用unobtrusive Javascript,它将Javascript与HTML分开。