php中html_entity_decode實現(xiàn)HTML實體轉義
最近遇到一個問題,數(shù)據(jù)中包含中文引號,結果被轉義存儲到數(shù)據(jù)庫,取數(shù)據(jù)的時候用了htmlspecialchars_decode把實體轉義回去,結果發(fā)現(xiàn)并沒有生效,看了一下htmlspecialchars_decode只支持5個指定的實體轉換,其他的[我遇到的是中文引號&ldrquo;]
因此發(fā)現(xiàn)了html_entity_decode可以把所有的實體轉義回去~
另外,如果你在瀏覽器中測試,會發(fā)現(xiàn)是轉義回去的,這是因為瀏覽器自動給處理了。實際上是沒有轉回去的,可以到命令行試試哦~~
html_entity_decode:把所有的html實體轉換為原來的字符
與htmlentities() 相反
更準確地說,這個函數(shù)解碼所有的實體(包括所有的數(shù)字實體):a)對于所選擇的文檔類型必須是有效的 - 即對于XML,這個函數(shù)不解碼可能在某些DTD中定義的命名實體 - 以及b) 其中的字符或字符位于與所選編碼相關聯(lián)的編碼字符集中并且在所選文檔類型中被允許。 所有其他實體保持原樣。
htmlspecialchars_decode:將特殊的 HTML 實體轉換回普通字符
此函數(shù)的作用和 htmlspecialchars() 剛好相反。它將特殊的HTML實體轉換回普通字符。
被轉換的實體有: &, " (沒有設置ENT_NOQUOTES 時), ' (設置了 ENT_QUOTES 時), < 以及>。
所以并不能把不包含在以上5個的其他轉換回去。
實例
把 HTML 實體轉換為字符:
<?php $str = "<© W3CSçh°°¦§>"; echo html_entity_decode($str); ?>
上面代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> <© W3CSçh°°¦§> </body> </html>
上面代碼的瀏覽器輸出如下:
<© W3CSçh°°¦§>
相關文章
php 處理上百萬條的數(shù)據(jù)庫如何提高處理查詢速度
php 處理上百萬條的數(shù)據(jù)庫如何提高處理查詢速度2010-02-02
PHP通過get方法獲得form表單數(shù)據(jù)方法總結
這篇文章我們給大家介紹了PHP如何通過get的方式來得到獲取form表單數(shù)據(jù)的方法,有需要的朋友們參考下。2018-09-09
php多次include后導致全局變量global失效的解決方法
這篇文章主要介紹了php多次include后導致全局變量global失效的解決方法,實例分析了$GLOBALS失效的原理與解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02

