2011-07-14 47 views
0

我试图读取一个文件作为字符串,并将其返回给客户端作为JavaScript代码执行,以便将其保存为变量。像这样PHP读取并执行一个文件的内容为一个字符串

<?php 
$fileName = 'target.js'; 
$codeAsString = file_get_contents($fileName); 
$script = 'var code=\'' . $codeAsString . '\''; 
echo $script; 
?> 

一旦回来了,我希望变量code拥有的target.js内容的字符串表示。但是,它不起作用。我怀疑它与新行字符和单/双引号做...在Python,他们有一个多线报价

"""This 
is 
a "multi" 
line 
'quote' 
""" 

有没有这样的事情在Javascript/PHP的?当我将它追加到$script时,我甚至无法掌握在$codeAsString附近是否需要单引号。我必须手动进入并在所有引号,双引号,反斜杠之前加上反斜杠......对此,他们肯定有帮助函数,因为这对于此

感谢。

回答

1

json_encode是你的朋友?

<?php 
$fileName = 'target.js'; 
$codeAsString = file_get_contents($fileName); 
$script = 'var code= '.json_encode($codeAsString) .';'; 
echo $script; 
?> 
+0

不错!这工作几乎完美无瑕。除了换行外,当我做'console.log()'时,我得到了这些贫民区的小回车符号。这是特定于Chrome,还是json_encode区分新行和回车? – puk

+0

如果我将它存储在'var code'中并执行'console.log(code)'回车符被解释为新行。但是,如果我将它存储在一个对象中,出于任何原因'{src:''}'并执行'console.log(code)',现在'code'的src'属性几乎没有回车符。因此,我怀疑这是特定于Chrome的。 – puk

相关问题