如何在PHP中转义单引号

时间:2014-03-25 18:15:25

标签: javascript php magento

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

我找到了一篇解释如何执行此操作的文章,但是当我尝试使用它时代码显示错误。 (http://azharkamar.com/5378/magento-modifying-default-message-alert-box-popup-dialog/

这是我正在使用的代码:

$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>';

非常感谢任何帮助,谢谢!

4 个答案:

答案 0 :(得分:0)

您可以通过在其前面加上反斜杠或使用字母的双引号来转义单引号:

$var = 'Escape \' like this';
$var = "Or embed ' like this";

如果你需要嵌入javascript,可能会有点困难,因为Javascript字符串中的引号也需要进行转义。通常你可以通过巧妙地结合单引号和双引号来获得arround:

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

或者您可以使用heredoc:

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

顺便说一句,在HTML中转义引号是另一回事。您使用&quot;实体,因此如果您想在Javascript中使用双引号,结果将是:

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

答案 1 :(得分:0)

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

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

或者你可以从你的html中移出javascript:

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

<script type="text/javascript">
function hideMessage() {
    document.getElementById("messages").style.visibility = "hidden";
}
</script>

答案 2 :(得分:0)

你可以逃脱'在它们之前加上反斜杠(' - &gt; \')

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

或使用EOF功能消除转义的需要。

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

EOF;

答案 3 :(得分:0)

要在php中转义某个字符,请使用\反斜杠。但是$html逃离它后的价值将是不整洁的 我就是这样做的..

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

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