【问题标题】:Stop HTML converting an & code停止 HTML 转换 & 代码
【发布时间】:2011-07-01 14:47:07
【问题描述】:

我有一个显示来自数据库的信息的 HTML 表,其中一个数据库字段包含一个参数列表,例如:

id=eff34-435-567rt-65u&notification=5

但是当我在表格中显示这个时 &not 变成了 ¬

我知道您可以使用手动强制它以正确的方式打印

&not

但我真的希望能够使用一些东西来强制 HTML 忽略代码,这样我就可以直接从数据库中提取文本并将其打印到表中,而无需执行正则表达式来查找是否存在是任何 & 并用 & 替换它们我尝试使用

 标记,但没有奏效。

有什么方法可以强制 HTML 准确打印为特定 td 字段输入的内容?

【问题讨论】:

  • 您使用什么编程语言,这取决于编程语言,因为它是转义代码而不是 html 的语言
  • PHP 通过 CodeIgniter 框架从 mysql 数据库中获取信息。

标签: php html codeigniter


【解决方案1】:

没什么实用的(CDATA 在text/html 模式下没有browser support)。改为编写正确的 HTML。

您应该通过转换函数运行从数据库中出来的任何内容,以使其无论如何都是 HTML 安全的(以防止 XSS,如果没有别的)。 PHP 有htmlspecialchars(),TT 有| html。无论您使用什么,都应该有除正则表达式之外的其他内容。

【讨论】:

    【解决方案2】:

    && 的正确 HTML 编码。您需要编写&not 才能正确显示。

    如果您从数据库中提取数据,则可以使用任何可用的编程语言为您解码 HTML 实体。

    例如,在 PHP 中,您可以使用 htmlentitieshtmlspecialchars

    【讨论】:

      【解决方案3】:

      尝试使用htmlspecialchars()

      【讨论】:

        【解决方案4】:

        大多数框架都有 HTML 编码功能。

        在 JavaScript 中:encode

        在 C# .NET 中:HttpServerUtility.HtmlEncode

        【讨论】:

          【解决方案5】:

          在输出之前对字符串运行 HTMLEncode。我所知道的每种服务器端脚本语言都有一个内置命令来执行此操作。更不用说你最终会遇到另一个导致问题的角色。

          ASP.NET:HttpServerUtility.HtmlEncode
          PHP:htmlentities

          绝对不需要正则表达式。

          【讨论】:

            猜你喜欢
            • 2021-08-18
            • 2013-10-24
            • 2023-01-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-13
            • 2017-10-27
            • 2018-07-03
            相关资源
            最近更新 更多