PHP 生成的 javascript 和引号

Igo*_*any 0 javascript php quotes quoting

我在我的 PHP 代码中生成了一些 javascript,我需要将一些 php 变量分配给 javascript 变量。不幸的是,有时我的 PHP 变量包含引号。例如:

$foo = "'Dis here be a \"string\"";
print "<script type='text/javascript'>var foo = '{$foo}';</script>";
Run Code Online (Sandbox Code Playgroud)

将生成一个 javascript 错误,因为生成的 javascript 将如下所示:

<script type='text/javascript'>var foo = '"'Dis here be a \"string\"';
Run Code Online (Sandbox Code Playgroud)

我知道我可以在 $foo 上使用正则表达式来替换所有'标记,\'但是由于各种原因这很难。除此之外还有什么我可以做的吗?类似于 perlq()函数的东西......

mau*_*ris 5

试过这样做吗?

$foo = "'Dis here be a \"string\"";
echo '<script type="text/javascript">var foo = "'.addslashes($foo).'";</script>';
Run Code Online (Sandbox Code Playgroud)

请参阅:http : //php.net/manual/en/function.addslashes.php

  • 在这种情况下,Addslashes() 就足够了,但不会转义 *每个 * 可能会破坏 js 字符串的字符。 (3认同)