我在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在字符串中有一个撇号,因此会破坏脚本:
未捕获的SyntaxError:意外的标记ILLEGAL
我将使用什么过滤器来解决此问题(PHP或JavaScript)?
答案 0 :(得分:7)
使用PHP,您可以尝试:
<?php echo str_replace("'", "\'",$c);
答案 1 :(得分:3)
PHP addslashes()函数将帮助您:http://php.net/manual/en/function.addslashes.php
答案 2 :(得分: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]
等元素
希望有所帮助。