【发布时间】:2016-04-25 12:09:44
【问题描述】:
我正在使用html_entity_decode($row['Content']) 在PHP 文档中显示一些包含HTML 的JSON 数据。问题是一些被返回的数据有打开的 HTML 标签,例如<strong>,然后继续显示在后面的内容。
有什么方法可以终止 HTML 吗?
【问题讨论】:
我正在使用html_entity_decode($row['Content']) 在PHP 文档中显示一些包含HTML 的JSON 数据。问题是一些被返回的数据有打开的 HTML 标签,例如<strong>,然后继续显示在后面的内容。
有什么方法可以终止 HTML 吗?
【问题讨论】:
如果您曾经接受来自外部来源的原始 HTML 并将其嵌入您的网站,您应该始终始终重新格式化并将其列入白名单。您不知道该第 3 方 HTML 可能包含什么,并且您无法保证它是有效的;但是在您的网站上,您可能希望保证其内容具有一定限制的有效 HTML(或者您真的想要启用任意 <script> 标签的嵌入...?!)。
这意味着你想要:
据说最好的 PHP 库是 HTML Purifier。在不使用库的情况下,您将使用宽松的 HTML 解析器,例如 DOMDocument 来检查和过滤内容,然后使用内置的 DOMDocument::saveXML 来生成新的净化 HTML。
【讨论】: