【问题标题】:Escaping double quotes in php在php中转义双引号
【发布时间】:2009-12-08 20:42:14
【问题描述】:

我有以下由用户生成的内容动态设置的变量:

$variable = '<a href="http://www.mysite.com/article">This Article</a>';

当这个变量被设置后,我就这样回显它

echo $variable;

我知道按原样,这是无效的,因为我需要转义双引号等。

有没有办法自动化该过程以使变量可打印为可点击的链接,从而自动转义变量中的引号?


编辑: 事实证明这确实是完全有效的,但是在 joomla 网站上使用它时,html 标签被剥离,我必须使用 [[a href]] 而不是常规的 。 感谢大家的帮助!

【问题讨论】:

  • 您认为回显该字符串的具体内容是什么?
  • 它只打印出本文的文本,而不是显示我的链接,所以我认为我的网址中存在双引号是什么破坏了它?
  • 这句话没有错
  • 我们能看到 echo 的 HTML 输出吗?
  • 错误,没有。它只打印This Article,因为锚标签&lt;a ...&gt; ... &lt;/a&gt; 使它成为一个链接。它与引号无关。

标签: php


【解决方案1】:

要在浏览器中“按原样”显示字符串,您必须将其传递给htmlspecialchars()

echo htmlspecialchars($variable);

如果不这样做,浏览器会按预期解释 HTML 并显示链接文本。

【讨论】:

    【解决方案2】:

    我尝试在我拥有的 php 页面中使用您的确切代码,它会按照您的需要进行操作。对我来说似乎工作得很好。

    【讨论】:

      【解决方案3】:

      我没有看到您的代码存在问题...您使用单引号来包含整个字符串,因此当在浏览器中查看时,它应该输出为可点击的链接

      【讨论】:

        【解决方案4】:

        您的代码看起来不错,应该可以正常工作。

        【讨论】:

        • 如果字符串以单引号开头,双引号不需要转义。反之亦然。
        • 不会转义双引号,因为它没有被双引号括起来
        • 这实际上会显示反斜杠。您需要在单引号内转义的唯一字符是单引号。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 2017-06-26
        • 1970-01-01
        • 2020-11-26
        • 1970-01-01
        相关资源
        最近更新 更多