停止HTML转换&码

时间:2011-07-01 14:47:08

标签: php html codeigniter

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

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

但是当我在表格中显示时,& not变为¬

我知道您可以使用

手动强制它以正确的方式打印
&not

但我真的宁愿能够使用某些东西来强制HTML忽略代码,所以我可以直接从数据库中提取文本并将其打印到表中而无需进行正则表达式来查找是否存在是任何&并用& amp;替换它们我尝试使用< pre>标签,但没有用。

有没有办法强制HTML打印出针对该特定td字段输入的内容?

5 个答案:

答案 0 :(得分:4)

没有任何实际意义(CDATA在text/html模式下没有browser support)。写相应的HTML。

您应该通过转换函数运行数据库中的任何内容,以使其保持HTML安全(如果没有别的话,可以防止XSS)。 PHP有htmlspecialchars(),TT有| html。无论你使用什么,都应该有一些其他的正则表达式。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

尝试使用htmlspecialchars()

答案 3 :(得分:1)

大多数框架都有HTML Encode功能。

JavaScript中的

encode

在C#.NET中:HttpServerUtility.HtmlEncode

答案 4 :(得分:1)

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

ASP.NET:HttpServerUtility.HtmlEncode
PHP:htmlentities

绝对没有必要使用正则表达式。