2011-07-01 41 views
1

我有显示数据库中的信息的HTML表,数据库字段中的一个包含一个参数列表,例如:停止HTML转换的&代码

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

但是,当我在表格中显示这个&不会成为¬

我知道,你可以手动强制使用

&not 

打印正确的方式,但我真的宁愿能够只使用索姆会为了强制HTML忽略代码,所以我可以直接从数据库中提取文本并将其打印到表格中,而无需执行正则表达式以查明是否存在任何&并用& amp;我尝试使用<pre>标签,但没有奏效。

有没有什么办法可以强制HTML打印准确地输入特定的td字段?

+0

你使用什么编程语言,它取决于编程语言,因为它是转义你的代码的语言,而不是html –

+0

PHP通过CodeIgniter框架从mysql数据库获取信息。 – awestover89

回答

4

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

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

2

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

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

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

1

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

ASP.NET:HttpServerUtility.HtmlEncode
PHP:ヶ辆

正则表达式绝对不应该是必要的。