php中javascript的转义序列
下面的代码不起作用,我用斜杠转义了单引号和双引号,但在firebug中得到错误“unterminated string literal”php中javascript的转义序列,javascript,Javascript,下面的代码不起作用,我用斜杠转义了单引号和双引号,但在firebug中得到错误“unterminated string literal” echo ' function AnimateButtonPress(keyChar) { switch (keyChar) { case "\"": case "\'": animateKey(40); break; } }'; PHP字符串中的反斜杠实际上仍然充当转义序列,因此在生成的HT
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,更好的是,a来减少转义的需要
echo <<<'EOT'
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
EOT;
echo
函数AnimateButtonPress(keyChar){
开关(keyChar){
案例'':
案例“'”:
animateKey(40);
打破
}
}
如果您必须用PHP构建这个字符串,我建议您使用HEREDOC
$js = <<<_JS
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
_JS;
echo $js;
$js=您的代码在Javascript中如下所示:
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case """:
case "'":
animateKey(40);
break;
}}
这是无效的JS。您必须两次转义引号,一次用于php,一次用于Javascript
case "\\\"":
case "\'":
里面没有PHP,为什么还要麻烦使用echo
呢?谢谢它现在可以工作了,我已经把javascript代码放在PHP标签外面了。@Phil是的,是的,我有。如果它看起来像是我“剽窃”的话,我道歉“从你的回答来看——我向你保证,我是同时打出来的。但是,你知道,问题是,你的原始答案没有在案例陈述中转换引号(你选择了转义它们),但是你的编辑偏离了这一点
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case """:
case "'":
animateKey(40);
break;
}}
case "\\\"":
case "\'":