2012-06-21 48 views
0

我在寻找逃跑的PHP一些JavaScript文本的最佳方式,并json_encode是错误的工作工具。逃逸的Javascript语言,PHP

问题来源于此行:

 
echo " onclick=\"SwitchDiv('" . $option . "')\""; 
如果有在 $option撇号,这是客户端的多汁球失败。但在做直 json_encode(这工作得很好在其他情况下)没有帮助:
 
echo " onclick=\"SwitchDiv(" . json_encode($option) . ")\""; 
,创建了 onclick="SwitchDiv("athlete's foot")"输出字符串,导致 onclick价值的提前终止。 (如果我用单引号 onclick值也会发生。)

有没有解决这个优雅的方式?我应该通过一个正则表达式逃脱单引号的输入json_encode输出吗?

+0

我会建议清理'$ option'值,因为你提到你的问题结束。 –

回答

3

json_encode是这份工作的合适工具。您的问题,从事实出现,你也包括在Java脚本的HTML 属性,因此也需要htmlspecialchars -encoded。

echo " onclick=\"SwitchDiv(" . htmlspecialchars(json_encode($option)) . ")\""; 
+0

宾果。谢谢! – BlairHippo