Php 回显javascript而不更改代码

Php 回显javascript而不更改代码,php,Php,大家好,我需要回应下面的javascript代码,但我不知道如何避开单引号。 如果我改变单引号,用双引号替换,我会有任何问题吗 (function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "https://bf1cthsdr.cloudfront.net/atrk.js"; var s = do

大家好,我需要回应下面的javascript代码,但我不知道如何避开单引号。 如果我改变单引号,用双引号替换,我会有任何问题吗

(function() {
    var as = document.createElement('script');
    as.type = 'text/javascript';
    as.async = true;
    as.src = "https://bf1cthsdr.cloudfront.net/atrk.js";
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(as, s);
})();
我需要像这样做一个回声:

echo '(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();';

若要转义
,需要在其前面放置
\
。因为您的字符串是用单引号包装的,所以它里面的每个单引号都需要看起来像这样

如果字符串用双引号括起来,情况也是如此。您需要用
\“
转义字符串中的所有双引号


如果要避免在字符串文字中转义引号,请使用

一个好的IDE语法将突出显示您的PHP,因此当文本被错误转义时,应该更容易看到

组织代码的更好方法是将JS移动到单独的文件中:

script.js script.php
这样做更好的原因是,您可以在一个编辑器中分别修改JS代码和PHP代码,该编辑器允许您在语法上突出显示JS。

如果您有很多引号要放在引号内,请执行以下操作:

echo "(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = 'https://d31qbv1cthcecs.cloudfront.net/atrk.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();";
不能将同一类型的引号放在另一个引号内,因为PHP会查找下一个匹配的引号,而该引号不是用
\
转义的

echo '(function() { var as = document.createElement(\'script\'); as.type = \'text/javascript\'; as.async = true; as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName(\'script\')[0];s.parentNode.insertBefore(as, s); })();';

我通常将单引号放在双引号内,以允许PHP变量插入,因为如果有很多引号,它可以避免我按shift键的情况,而键入双引号是需要的。

您应该已经知道这一点。无论如何,我都会使用单独的JavaScript页面,如
。这样,输出仍然会保持不变缓存到客户端的浏览器中。
echo '(function() { var as = document.createElement(\'script\');...etc...';
//                                                  ^       ^
(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "https://bf1cthsdr.cloudfront.net/atrk.js"; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();
...other code...
include('script.js');
...more code...
echo "(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = 'https://d31qbv1cthcecs.cloudfront.net/atrk.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();";