2016-04-25 152 views
0

我正在使用html_entity_decode($row['Content'])PHP文檔中顯示一些JSON數據,其中包含HTML。問題是,一些正在返回的數據已經打開了HTML標籤,例如<strong>,然後繼續顯示之後顯示的內容。html_entity_decode終止?

有什麼方法可以終止HTML?

回答

1

如果你從外部接受原始的HTML嵌入到你的網站,你應該始終,總是,重新格式化和白名單了。你不知道第三方HTML可能包含什麼,並且你不能保證它是有效的;然而在你的網站上,你大概需要保證有效的HTML,其內容有一定的限制(或者你真的想啓用嵌入任意<script>標籤...?!)。

這意味着你要:

  1. 解析HTML和提取任何結構信息是它
  2. 過濾器結構,只允許批准的元素,然後
  3. 從產生自己的HTML這你可以保證在句法上是有效的。

據說最好的PHP庫就是HTML Purifier。如果不使用庫,您可以使用寬鬆的HTML解析器,如DOMDocument來檢查和過濾內容,然後使用內置的DOMDocument::saveXML來生成新的消毒HTML。

+0

這是處理器密集型。我認爲這是更容易實施... http://stackoverflow.com/a/37111254/1487576 – Karma