0

我试图在 PHP if 语句中为 Google AdWords 转换跟踪代码回显 Javascript。我已经做了一堆谷歌搜索,但似乎无法找到我需要转义以使代码正确执行的字符的明确列表。有人有建议吗?

第一段代码是 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&amp;guid=ON&amp;script=0"/>
</div>
</noscript>";
4

4 回答 4

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&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
ENDMARKER;
于 2009-12-17T23:01:37.900 回答
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&amp;guid=ON&amp;script=0"/>
</div>
</noscript>'

关闭:单引号比双引号快几倍,我的意思是很多。

于 2009-12-17T23:07:52.490 回答
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&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
<?php

作为旁注,请记住,您在这里真正缺少的元素是提供某种模板的可靠方法。模板使处理 php 变得更加简洁,将表示逻辑与业务逻辑分开。如果不使用完整的模板引擎,我强烈建议至少使用分离的 php 文件作为模板。

于 2009-12-17T23:07:48.350 回答
0

不久前,我对同一个问题感到困惑。一般的答案确实不是微不足道的。

我放弃并重写了我的代码以使用json_encode()它很容易地整理出来。重写也很快。如果我早点想到,我会为自己节省很多时间。

将您需要的数据打包到一个对象或数组中,json_encode()然后将其写入 JS 脚本。

于 2009-12-17T23:27:08.783 回答