2013-10-16 2 views
0

아래 코드가 작동하지 않습니다. 작은 따옴표와 큰 따옴표를 슬래시로 이스케이프 처리했으나 방화 광의 "unterminated string literal"오류가 발생합니다.PHP에서 자바 스크립트의 이스케이프 시퀀스

echo ' 
function AnimateButtonPress(keyChar) { 
switch (keyChar) {  
    case "\"": 
    case "\'": 
     animateKey(40); 
     break; 

} 
}'; 
+1

거기에 PHP가 없으므로 왜 'echo'를 사용하면 좋을까요? – Phil

+0

지금 고맙다, 나는 사이드 PHP 태그 밖으로 자바 스크립트 코드를 넣었습니다. – user1866211

답변

0

PHP 문자열의 백 슬래시는 실제로 여전히 이스케이프 시퀀스로 작동하므로 결과 HTML에 백 슬래시가 표시되지 않습니다. 당신은뿐만 아니라 슬래시를 이스케이프해야합니다 :

echo ' 
function AnimateButtonPress(keyChar) { 
    switch (keyChar) {  
     case "\\"": 
     case "\'": 
      animateKey(40); 
      break; 
    } 
}'; 

당신은 또한 더 나은하는 히어 닥을 사용하는 NOWDOC 탈출의 필요성을 줄일 수 있습니다.

echo <<<'EOT' 
function AnimateButtonPress(keyChar) { 
    switch (keyChar) {  
     case '"': 
     case "'": 
      animateKey(40); 
      break; 
    } 
} 
EOT; 

정적 HTML 일 경우 왜 PHP로 출력해야합니까? 일반 마크 업으로 <?php ?> 태그 외부에 붙여 넣기 만하면됩니다. 당신이 PHP에서이 문자열을 구축해야하는 경우

<?php 
// code 
?> 
function AnimateButtonPress(keyChar) { 
    switch (keyChar) {  
     case '"': 
     case "'": 
      animateKey(40); 
      break; 
    } 
} 
<?php 
// more code 
?> 
+0

편집 내역이 공개 된 것을 알고 있습니까? – Phil

+0

@ 필 예, 그렇습니다. 귀하의 답변에서 "표절"된 것처럼 보일 경우 사과드립니다. 귀하가이 사실을 동시에 타이핑하고 있음을 확신합니다. 하지만 알다시피, [서쪽에서 가장 빠른 총] (http://meta.stackexchange.com/questions/9731/fastest-gun-in-the-west-problem). –

+0

문제는 원래 답안이 case 문에서 따옴표를 바꾸지 않았지만 (사용자가 이스케이프 처리를 선택 했음) 편집 결과가이 – Phil

0

, 난 그냥 완전히

?> 
function AnimateButtonPress(keyChar) { 
    switch (keyChar) {  
     case '"': 
     case "'": 
      animateKey(40); 
      break; 
     } 
} 
<?php 
+0

에서 출발 했으므로 이제 작동 중입니다. – user1866211

0

귀하의 코드는 모양을 PHP 중퇴,

$js = <<<_JS 
function AnimateButtonPress(keyChar) { 
    switch (keyChar) {  
     case '"': 
     case "'": 
      animateKey(40); 
      break; 
     } 
} 
_JS; 
echo $js; 

또는 히어 닥 권 해드립니다 Javascript의이 항목 :

function AnimateButtonPress(keyChar) { 
switch (keyChar) {  
    case """: 
    case "'": 
     animateKey(40); 
     break; 
}} 

유효한 JS가 아닙니다. 따옴표를 PHP에서 한 번, 자바 스크립트에서 한 번 두 번 이스케이프 처리해야합니다.

관련 문제