2012-08-08 49 views
0

我在数据库中格式化了html标签(<变为&lt;等等)。直接从数据库输出html

我遇到的问题是html标签字面输出;而不是<b>Text</b>使文字加粗,它显示为&lt;b&gt;

有人知道这是为什么吗?或者如何修复它? 这可能是一个非常简单的问题,我忽略了它。

网站上的输出:在DB the website

HTML代码: partial image of the data in the DB.

+0

你通常存储htmls未编码,并使用'htmlentities'输出编码 – 2012-08-08 01:57:26

+0

这就是问题 - 它被编码,知道这是简单的。我使用codeigniter框架来防止上述和更多(XSS攻击和SQLi)。谢谢 – RobAtStackOverflow 2012-08-08 12:01:44

回答

2

使用html_entity_decode()

echo html_entity_decode("&lt;b&gt;"); // <b> 
+0

grrr !,你击败了我! :D – raidenace 2012-08-08 02:03:29

+0

谢谢约翰 - 知道这是如此愚蠢和简单! – RobAtStackOverflow 2012-08-08 12:03:37

1

我想你们希望&lt;等全部更换<同时将HTML存储在数据库中。但我发现在你的分贝中,<script ...标签看起来像&amp;lt;script ...。 尝试用&lt;script ...之类的东西替换它。 还要确保设置了正确的MIME类型。对于HTML页面,请使用:

header('Content-type: text/html'); 
0

而不是解码,请确保您没有对它进行双重编码。如果你已经在数据库中编码了数据,然后在打印出来时再次对它进行编码,它应该被渲染为<等。

+0

我不认为我是,除非我使用的codeigniter框架“自动”。感谢您的信息,但我会牢记这一点。 – RobAtStackOverflow 2012-08-08 12:04:41