2009-12-17 40 views
0

我試圖在PHP if語句中回顯出Google AdWords轉換跟蹤代碼的Javascript。我做了一堆Google搜索,但似乎無法找到我需要轉義以確保代碼正確執行的字符的確切列表。任何人都有建議?在PHP中回顯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>"; 

回答

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; 
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文件作爲模板。

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>' 

關閉:單引號比雙引號快好幾倍,我的意思是一個LOT。

0

前段時間我對同一個問題感到困惑。一般的答案實際上並不重要。

我放棄了,並重寫了我的代碼,使用json_encode(),它很容易將其排序。重寫也很快。如果我早點想到它,我會省下很多時間。

在對象或數組中包裝你需要的數據給你的JS腳本,json_encode()它並編寫它。

相關問題