html_entity_decode终止?

时间:2016-04-25 12:09:44

标签: php html json

我正在使用html_entity_decode($row['Content'])JSON文档中显示包含HTML的一些PHP数据。问题是返回的某些数据具有开放的HTML标记,例如<strong>,然后继续显示在之后显示的内容。

有没有办法终止HTML?

1 个答案:

答案 0 :(得分:1)

如果您接受来自外部来源的原始HTML嵌入您的网站,您应始终 始终 ,重新格式化并将其列入白名单。您不知道第三方HTML可能包含哪些内容,并且您无法保证它是有效的;但是在您的网站上,您可能希望保证有效的HTML对其内容有一定的限制(或者您真的想要启用嵌入任意<script>标签......?!)。

这意味着你想:

  1. 解析HTML并提取其中的结构信息
  2. 过滤该结构只允许批准的元素然后
  3. 从您可以保证在语法上有效的HTML生成您自己的HTML。
  4. 据说最好的PHP库是HTML Purifier。如果不使用库,您可以使用宽松的HTML解析器(例如DOMDocument)来检查和过滤内容,然后使用内置的DOMDocument::saveXML来生成新的已清理的HTML。