4

我在 PHP 中有一个 foreach 循环:

var circle_<?php echo $x; ?> = '<?php echo $c; ?>';

它在 JavaScript 中返回:

var circle_0 = '<p class="medium">With us, you can customize more than just a closet.</p>';

var circle_1 = '<p class="medium">We are boutique condo builders who love what we do.</p>';

var circle_2 = '<p class="medium">who says condos can't be spacious?<br/></p>';

如您所见, circle_2 在字符串中有一个撇号,因此它破坏了脚本:

Uncaught SyntaxError: Unexpected token ILLEGAL

我会使用什么过滤器来解决这个问题(PHP 或 JavaScript)?

4

3 回答 3

8

使用PHP,您可以尝试:

  <?php echo str_replace("'", "\'",$c);
于 2013-04-04T15:09:28.430 回答
4

PHP addslashes() 函数将帮助您: http: //php.net/manual/en/function.addslashes.php

于 2013-04-04T15:11:34.003 回答
3

不要foreach为此使用循环,也不要addslashes在这里使用或任何其他不好的答案。

像这样编写代码:

echo "var circle = ".json_encode($carray).';';

$carray您当前正在循环foreach()以获取$x和的数组在哪里$c

这将创建一个如下所示的 Javascript 数组:

var circle = [
    '\'<p class="medium">With us, you can customize more than just a closet.</p>\'',
    '\'<p class="medium">We are boutique condo builders who love what we do.</p>\'',
    '\'<p class="medium">who says condos can't be spacious?<br/></p>\''
];

然后,您可以通过 、 等方式访问circle[0]元素circle[1]

希望有帮助。

于 2013-04-04T15:18:07.280 回答