从php构建javascript时转义引号

时间:2011-10-24 02:02:21

标签: php javascript escaping

基本上,我正在接受用户输入并将其传递到php中的页面中的javascript函数。但是因为用户使用撇号,我收到了错误。什么是PHP中适当的转义函数用于将被引号包围的变量。 IE:

一些php:

$userString = "Joe's Pizza";
// escape here
echo "<script type=\"text/javascript\">myFunction('$userString');</script>";

非常感谢!

2 个答案:

答案 0 :(得分:6)

将其包裹在对象/关联数组中并使用json_encode

$array = array('data' => $userString);
$encoded_array = json_encode($array);
echo "<script type=\"text/javascript\">myFunction($encoded_array);</script>";

myFunction可能看起来像:

function myFunction(obj)
{
  var data = obj.data;
  ... 
}

这也允许您在需要时轻松使对象更复杂。

答案 1 :(得分:2)

addslashes; e.g。

$userString = addslashes("Joe's Pizza");
print '<script type="text/javascript">myFunction('$userString');</script>";;