2011-12-13 37 views
0

在我的网站上,我有一个PHP脚本,它接受多个源文件(HTML,CSS和JavaScript),优化它们,将它们嵌入页面并缓存它们(基本上编译我的网站)。最近,我已经加入jquery-json(一个jQuery插件用于编码JSON成字符串),但代码的一部分包含多个斜线(在某种正则表达式的使用):阻止PHP从输出中去除反斜杠

var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g, 

当这条线是由脚本处理的我前面提到的反斜杠的一个被删除,结果:

var escapeable = /["\\x00-\x1f\x7f-\x9f]/g, 

而且,我已经建立了简短的脚本,以确保问题不是由个什么东西引起的的JavaScript正在被处理PHP脚本,并且它实际上是PHP输出它的方式的一个问题:

<?php 
$string = 'var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,'; 

echo($string); //this outputs: var escapeable = /["\\x00-\x1f\x7f-\x9f]/g, 
?> 

你可以通过评论看到,问题是在这个简单的脚本也一样...

我不知道这是否是相关的,但我已经检查,以确保魔术报价已关闭。此外,我知道'可逃避'拼写错误,但这只是它在jquery-json源代码中的方式。

那么,如何防止PHP从输出中删除反斜杠?

回答

1

您可以使用nowdoc-syntax(需要PHP 5.3.0):

$string = <<<'EOD' 
var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g, 
EOD; 
+0

谢谢,它的工作完美。 – slang