php - 从 php 构建 javascript 时转义引号

标签 php javascript escaping

基本上,我获取用户输入并将其从 php.ini 传递到页面中的 JavaScript 函数。但由于用户使用撇号,我收到错误。 php 中对用引号引起来的变量使用正确的转义函数是什么? IE:

一些 php:

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

非常感谢!

最佳答案

将其包装在对象/关联数组中并使用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;
  ... 
}

如果需要,这还允许您轻松地使对象变得更加复杂。

关于php - 从 php 构建 javascript 时转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870682/

相关文章:

javascript - Angularjs——更新后刷新 View 中的单列

c# - 我需要在配置文件中转义反斜杠吗?

python - 如何转义Python相关库中的星号?

php - 如何在php中找到没有扩展名的图像类型?

php - 转换为字符串时 (string)$value 和 "$value"之间哪个更快

php - div 高度不会根据内容大小增长

jsp - 如何逃避EL美元符号?

php - CURLM_CALL_MULTI_PERFORM 弃用

javascript - 如果 JavaScript 值不是某个 "class"会抛出错误?

javascript - 通过javascript计算季度和年度平均数