我试图回应PHP中的一些谷歌分析JavaScript代码,以便根据具体情况有条件地阅读。因为代码包含/ * * /字符,所以我很难在引号周围缠头。我正在寻找将这种类型的文本分配给php变量的方向。
由于
$sJS .='<script type="text/javascript">';
$sJS .='/* <![CDATA[ */"';
$sJS .='var google_conversion_language = "en";';
$sJS .='var google_conversion_format = "2";';
$sJS .='var google_conversion_color = "ffffff";';
$sJS .='var google_conversion_value = 0;';
$sJS .='/* ]]> */';
$sJS .='</script>';
$sJS .='<script type="text/javascript" src="http://www.googleadservices.com/page.js">';
$sJS .='</script>';
$sJS .='<noscript>';
$sJS .='<div style="display:inline;">';
$sJS .='<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/997410413/?value=1.00&label=ffr456dj5QIQ7YzN2wM&guid=ON&script=0"/>';
$sJS .='</div>';
$sJS .='</noscript>';
答案 0 :(得分:3)
echo <<< EOD
your html here
EOD;
答案 1 :(得分:2)
它喜欢将heredoc syntax用于那种东西。
让你的js单独包含heredoc变量,它会更加清晰。
答案 2 :(得分:1)
出了什么问题:
<?php
$JS='
<script type="text/javascript">
/* <![CDATA[ */"
var google_conversion_language = "en";
var google_conversion_format = "2";
var google_conversion_color = "ffffff";
var google_conversion_value = 0;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/page.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/997410413/?value=1.00&label=ffr456dj5QIQ7YzN2wM&guid=ON&script=0"/>
</div>
</noscript>';
答案 3 :(得分:1)
嗯,你没有确切地说什么不起作用。引用的/*
不应被视为评论。如果这不能满足您的期望,您的代码中的其他地方可能会出现不匹配的引号。我一眼就看出来了:
$sJS .='/* <![CDATA[ */"';
看起来你最后有"
然后是'
。您可能不需要"
答案 4 :(得分:1)
您不需要像这样逐行执行... PHP支持继续下一行。这很好用:
$sJS = '<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_language = "en";
var google_conversion_format = "2";
var google_conversion_color = "ffffff";
var google_conversion_value = 0;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/page.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/997410413/?value=1.00&label=ffr456dj5QIQ7YzN2wM&guid=ON&script=0"/>
</div>
</noscript>';
您的字符串以单引号引用,其中没有单引号,并且没有反斜杠或转义序列。
显着工作(如果您查看来源)答案 5 :(得分:1)
您可以使用Heredoc或Nowdoc语法来更轻松地完成此操作。
Nowdoc(在php&gt; 5.3中)将不解析变量(类似于单引号)
Heredoc解决方案:
echo <<< EOD
<script type="text/javascript">
/* <![CDATA[ */"
var google_conversion_language = "en";
var google_conversion_format = "2";
var google_conversion_color = "ffffff";
var google_conversion_value = 0;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/page.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/997410413/?value=1.00&label=ffr456dj5QIQ7YzN2wM&guid=ON&script=0"/>
</div>
</noscript>
EOD;
对于nowdoc,唯一的区别是将EOT用于单引号('EOT'):
echo <<<'EOT'
...
EOT;