2014-12-25 4 views
1
<?php 
$javascript = <<<EOT 
<script type="text/javascript"> 
function test() { 
    return 'test test test \n test test test'; 
} 
</script> 
EOT; 

echo $javascript; 
?> 

의 \ n은 상기 PHP로 바꿈으로서 파싱 내부 자바 스크립트의 콘텐츠를 파싱 다음PHP가 히어 닥

return 'test test test 
test test test'; 

같은 HTML 소스를 생성하고,이 자바 스크립트 구문 오류 결과 종결되지 않은 문자열 리터럴.


내가 자바 스크립트 코드의 큰 덩어리를 가지고, 그래서

$javascript = "<script type=\"text/javascript\">\nfunction test()...\n"; 

처럼 포장하고 싶지 않아 실제로 자바 스크립트 코드를 직접 페이지로 echo'd하지, 그것은이다 다른 함수로 전달 되었기 때문에 이것이 PHP 변수가 필요한 이유입니다.


문제를 야기하는 큰 JavaScript 코드가 포함 된 PHP 변수를 어떻게 정의 할 수 있습니까?

if/endif와 같은 방법이 있습니까?

<?php if (condition): ?> 
html code... 
<?php endif ?> 
+2

대신 NOWDOC를 사용하십시오. – mario

+0

op 코드에 변수가있어 NOWDOC이이를 건너 뜁니다. 출력 버퍼링을 사용하십시오. –

+0

@mario를 'EOT'로 변경하면 – user1643156

답변

3

옵션 1 : ' 작은 따옴표가 " 따옴표에 그대로 HEREDOCs에있는 NOWDOC을 사용합니다.

$javascript = <<<'EOT' 
    ...\n... 
EOT; 

옵션 2 :

$javascript = <<<EOT 
    ...\\n... 
EOT; 
0

내 코드 :

$javascript = <<<'EOT' 
<script type="text/javascript"> 
$demo = 'test'; 
alert($demo); 
</script> 
EOT; 
echo $javascript; 

난 후 'EOT'잘 작동 자바 스크립트 내 코드를 사용하는 경우하지만 난 EOT를 사용하는 특수 문자를 탈출 내 코드는 $ dem가 PHP에서 가변적이라는 것을 이해할 것입니다

관련 문제