在包含单引号和双引号的字符串中转义单引号


Escape single quotes in string containing single and double quotes

我有一个包含单引号和双引号的PHP字符串,但要正确转义它很困难。甚至尝试过在线报价网站,但他们的结果也有错误。

$confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open('http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F','sharer','toolbar=0,status=0,width=548,height=325');" class="">Share on Facebook</a>';

我不认为双引号需要转义。尽管如此,在加载页面时,我的所有尝试都会导致HTTP500。

这个字符串中的单引号是如何转义的?

要转义PHP中的嵌套引号,请使用'

 $confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open(''http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F'',''sharer'',''toolbar=0,status=0,width=548,height=325'');" class="">Share on Facebook</a>';

对于一个有很多引号的复杂案例,使用heredoc:可能更具可读性和实用性

$confirmation .= <<<EOT
  <a title="Share on Facebook" target="_blank" href="javascript:void(0)" onclick="window.open('http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F','sharer','toolbar=0,status=0,width=548,height=325');" class="">Share on Facebook</a>
EOT;

$confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open(''http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F'',''sharer'',''toolbar=0,status=0,width=548,height=325'');" class="">Share on Facebook</a>';