php中javascript的转义序列

php中javascript的转义序列,javascript,Javascript,下面的代码不起作用,我用斜杠转义了单引号和双引号,但在firebug中得到错误“unterminated string literal” echo ' function AnimateButtonPress(keyChar) { switch (keyChar) { case "\"": case "\'": animateKey(40); break; } }'; PHP字符串中的反斜杠实际上仍然充当转义序列,因此在生成的HT

下面的代码不起作用,我用斜杠转义了单引号和双引号,但在firebug中得到错误“unterminated string literal”

 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 "\'":