下面的代碼不能正常工作,我用斜槓轉義了單引號和雙引號,但是我在firebug中得到錯誤「未終止的字符串文字」。在php中跳轉序列的javascript
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\"":
case "\'":
animateKey(40);
break;
}
}';
下面的代碼不能正常工作,我用斜槓轉義了單引號和雙引號,但是我在firebug中得到錯誤「未終止的字符串文字」。在php中跳轉序列的javascript
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\"":
case "\'":
animateKey(40);
break;
}
}';
PHP字符串中的反斜線實際上仍然是一個轉義序列,所以不會在生成的HTML中發出反斜槓。你需要逃避斜線,以及:
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\\"":
case "\'":
animateKey(40);
break;
}
}';
你也可以使用一個HEREDOC,甚至更好,一個NOWDOC以減少逃逸的需要。
echo <<<'EOT'
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
EOT;
另外,如果這只是靜態的HTML,爲什麼發出它與PHP呢?只要將它標記爲<?php ?>
以外的標記爲普通標記。
<?php
// code
?>
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
<?php
// more code
?>
如果必須建立這個字符串在PHP中,我建議HEREDOC
$js = <<<_JS
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
_JS;
echo $js;
另外,剛剛輟學PHP的完全
?>
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
<?php
謝謝,現在它正在工作.. – user1866211
您的代碼看起來像這在Javascript中:
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case """:
case "'":
animateKey(40);
break;
}}
這是無效的JS。你必須避免兩次引號,一次用於php,一次用於Javascript。
case "\\\"":
case "\'":
那裏沒有PHP,那麼爲什麼還要用'echo'呢? – Phil
感謝它現在的工作,我已經把JavaScript代碼放在一邊php標籤。 – user1866211