2009-12-17 6 views
0

PHP if 문 내에서 Google 애드워즈 전환 추적 코드의 자바 스크립트를 에코하려고합니다. 나는 많은 수의 검색 작업을 수행했지만 코드를 올바르게 실행하려면 어떤 문자를 이스케이프 처리해야하는지에 대한 확실한 목록을 찾을 수없는 것 같습니다. 누구 제안있어?PHP에서 Javascript를 출력 할 때 이스케이프 처리해야 할 문자는 무엇입니까?

코드의 첫 번째 비트는이 전환 코드에 포함 호출하는 경우 문장의 시작 :

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

당신은 아무것도 탈출 할 필요가 없습니다 있도록, 단지 NOWDOC를 사용하고 어떤 구문 분석이 완료되지 않습니다, 5.3+ PHP를 사용하는 가정 :

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

꺼짐 : 작은 따옴표는 큰 따옴표보다 몇 배 빠르며 여러개는 많은 의미입니다.

0

나는 전에 같은 문제에 대해 모두 혼란스러워했다. 일반적인 대답은 정말 사소하지 않습니다.

나는 코드를 다시 작성하여 json_encode()을 사용하여 매우 쉽게 분류했습니다. 재 작성도 빠릅니다. 내가 그것을 더 일찍 생각하면 많은 시간을 절약 할 수 있었을 것이다.

개체 또는 배열에서 JS 스크립트에 필요한 데이터를 패키지화하십시오 (json_encode()).

관련 문제