我正在尝试在PHP if语句中回显用于Google AdWords转换跟踪代码的Javascript。我已经做了一堆谷歌搜索,但似乎无法找到一个确定的列表,我需要逃避什么字符,以使代码正确执行。有人有建议吗?
第一段代码是使用转换代码段调用include的if语句的开头:
if ( @mailit ) {
include ("conversioncodes.php");
这是conversioncodes.php的内容,其中包含我试图弄清楚如何正确转义的代码片段。目标是在满足if语句的条件时让转换代码跟踪转换。
echo "<!-- Google Code for Homepage Form Submit Conversion Page -->
<script type="text/javascript">
<!--
var google_conversion_id = XXXXXXXXXX;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "XXXXXXXXXXXXXXX";
var google_conversion_value = 0;
//-->
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?label=XXXXXXXXXXXXXXXXXXX&guid=ON&script=0"/>
</div>
</noscript>";
答案 0 :(得分:3)
假设您使用的是PHP 5.3+,只需使用NOWDOC并且不会进行任何解析,因此您无需逃避任何操作:
echo <<<'ENDMARKER'
<!-- Google Code for Homepage Form Submit Conversion Page -->
<script type="text/javascript">
<!--
var google_conversion_id = XXXXXXXXXX;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "XXXXXXXXXXXXXXX";
var google_conversion_value = 0;
//-->
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?label=XXXXXXXXXXXXXXXXXXX&guid=ON&script=0"/>
</div>
</noscript>
ENDMARKER;
答案 1 :(得分:3)
只需使用单引号。
echo '<!-- Google Code for Homepage Form Submit Conversion Page -->
<script type="text/javascript">
<!--
var google_conversion_id = XXXXXXXXXX;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "XXXXXXXXXXXXXXX";
var google_conversion_value = 0;
//-->
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?label=XXXXXXXXXXXXXXXXXXX&guid=ON&script=0"/>
</div>
</noscript>'
关:单引号比双引号快几倍,而且几个我的意思是很多。
答案 2 :(得分:1)
也许刚刚突破php?通过这种方式,您还可以尽可能清晰地突出语法。
?>
<!-- Google Code for Homepage Form Submit Conversion Page -->
<script type="text/javascript">
<!--
var google_conversion_id = XXXXXXXXXX;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "XXXXXXXXXXXXXXX";
var google_conversion_value = 0;
//-->
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?label=XXXXXXXXXXXXXXXXXXX&guid=ON&script=0"/>
</div>
</noscript>
<?php
正如旁注,请记住,您在这里真正缺少的元素是提供某种模板的强大方式。模板使得处理php变得更加清晰,将表示逻辑与业务逻辑分开。我强烈建议至少使用分离的php文件作为模板,如果不是使用完整的模板引擎。
答案 3 :(得分:0)
前一段时间我对同样的问题感到困惑。一般的答案真的不是微不足道的。
我放弃并重写了我的代码以使用json_encode()
,它非常容易地对它进行排序。重写也很快。如果我早点想到它,我会为自己节省很多时间。
将对象或数组中的数据打包到JS脚本json_encode()
并将其写入。