Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在PHP中转义单引号_Javascript_Php_Magento - Fatal编程技术网

Javascript 如何在PHP中转义单引号

Javascript 如何在PHP中转义单引号,javascript,php,magento,Javascript,Php,Magento,我正在使用Magento尝试将错误消息样式设置为弹出窗口,而不是内联显示 我发现一篇文章解释了如何做到这一点,但是当我尝试使用它时,代码显示了一个错误。() 这是我正在使用的代码: $html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>'; $html.=''; 文章后面提到的一条评论说,他

我正在使用Magento尝试将错误消息样式设置为弹出窗口,而不是内联显示

我发现一篇文章解释了如何做到这一点,但是当我尝试使用它时,代码显示了一个错误。()

这是我正在使用的代码:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>'; 
$html.='';
文章后面提到的一条评论说,他们“必须避开单引号,才能让它起作用。”

我尝试编辑代码,并使用下面显示的代码。“关闭”按钮出现,但不会关闭该框

$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>';
$html.='';

任何帮助都将不胜感激,谢谢

可以通过在单引号前面加反斜杠或对字符串使用双引号来对其进行转义:

$var = 'Escape \' like this';
$var = "Or embed ' like this";
如果需要嵌入javascript,可能会有点困难,因为javascript字符串中的引号也需要转义。通常,通过巧妙地组合单引号和双引号,您可以获得傲慢:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>';

您可以使用反斜杠转义代码中的单引号,如下所示:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>';
$html.='';
或者,您可以将javascript移出html:

$html .= '<a class="msgclose" href="#" onclick="hideMessage()">x</a>';

<script type="text/javascript">
function hideMessage() {
    document.getElementById("messages").style.visibility = "hidden";
}
</script>
$html.='';
函数隐藏消息(){
document.getElementById(“消息”).style.visibility=“隐藏”;
}

你们两个都可以避免在前面加反斜杠(“->\”)

$html.='';
或者使用EOF函数来消除转义的需要

$html .= <<<EOF
<a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility="hidden">x</a>

EOF;

$html.=要在php中转义字符,请使用
\
反斜杠。但是转义后,
$html
将具有的值将是不整洁的 下面是我该怎么做

$html .= "<a class='msgclose' href='#' onclick='document.getElementById('messages').style.visibility='hidden''>x</a>";
$html.=”;

我使用了双引号,其中我使用了单引号

可能的重复,我尝试了第一个选项,将单引号和双引号组合在一起,效果非常好!非常感谢大家的快速回复:)
$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility="hidden">x</a>';
$html .= <<<EOF
<a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility="hidden">x</a>

EOF;
$html .= "<a class='msgclose' href='#' onclick='document.getElementById('messages').style.visibility='hidden''>x</a>";