下面的代码不起作用,我已经使用斜线转义单引号和双引号,但我在firebug中收到错误“未终止的字符串文字”。
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\"":
case "\'":
animateKey(40);
break;
}
}';
答案 0 :(得分:0)
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
?>
答案 1 :(得分:0)
如果必须在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
答案 2 :(得分:0)
您的代码在Javascript中将如下所示:
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case """:
case "'":
animateKey(40);
break;
}}
这是无效的JS。你必须两次转义引号,一次用于php,一次用于Javascript。
case "\\\"":
case "\'":