首頁 >後端開發 >php教程 >在php中用html_entity_decode實作HTML實體轉義

在php中用html_entity_decode實作HTML實體轉義

不言
不言原創
2018-06-13 09:22:062521瀏覽

這篇文章主要介紹了php中html_entity_decode實現HTML實體轉義的相關資料,需要的朋友可以參考下

最近遇到一個問題,數據中包含中文引號,結果被轉義存儲到資料庫,取資料的時候用了htmlspecialchars_decode把實體轉義回去,結果發現並沒有生效,看了一下htmlspecialchars_decode只支援5個指定的實體轉換,其他的[我遇到的是中文引號&ldrquo;]

因此發現了html_entity_decode可以把所有的實體轉義回去~

#另外,如果你在瀏覽器中測試,會發現是轉義回去的,這是因為瀏覽器自動給處理了。其實是沒有轉回去的,可以到命令列試試哦~~

html_entity_decode:把所有的html實體轉換成原來的字元

##與htmlentities() 相反


更準確地說,這個函數解碼所有的實體(包括所有的數字實體):a)對於所選的文檔類型必須是有效的- 即對於XML,這個函數不解碼可能在某些DTD中定義的命名實體- 以及b) 其中的字元或字元位於與所選編碼相關聯的編碼字元集中並且在所選文件類型中被允許。所有其他實體保持原樣。

htmlspecialchars_decode:將特殊的 HTML 實體轉換回普通字元

此函數的作用和 htmlspecialchars() 剛好相反。它將特殊的HTML實體轉換回普通字元。

被轉換的實體有: &, " (沒有設定ENT_NOQUOTES 時), ' (當設定了ENT_QUOTES 時), c05976aa6e52ee83d569d940dfba473d。

所以不能把不包含在以上5個的其他轉換回去。

實例


把HTML 實體轉換成字元:

<?php
$str = "<© W3CSçh°°¦§>";
echo html_entity_decode($str);
?>

上面程式碼的HTML 輸出如下(檢視原始碼):

<!DOCTYPE html>
<html>
<body>
<© W3CSçh°°¦§>
</body>
</html>

上面程式碼的瀏覽器輸出如下:

9225246df3cb2376f04d08361483f02c

以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!

#相關推薦:

#如何用php處理多圖上傳壓縮的功能

如何解決php中curl和soap方式請求服務逾時的問題

以上是在php中用html_entity_decode實作HTML實體轉義的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn