本文實例講述了php過濾htmlspecialchars() 函數實現把預定義的字符轉換為 HTML 實體用法。分享給大家供大家參考,具體如下:
這個函數非常重要,特別是在處理中文字符時,同時開發過程中往往需對寫入數據庫或讀取數據庫的數據進行處理。
htmlspecialchars(string,flags,character-set,double_encode)
1、string:必需。規定要轉換的字符串。
2、flags:可選,規定如何處理引號、無效的編碼以及使用哪種文檔類型,如ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES
3、character-set:可選,顧名思義字符集,默認utf-8,當然支持很多編碼,這里不列舉
4、double_encode:可選,一個規定了是否編碼已存在的 HTML 實體的布爾值。
預定義的字符是:
1、& (和號)成為 &
2、” (雙引號)成為 ”
3、' (單引號)成為 ‘
4、< (小于)成為 < > (大于)成為 >
那么什么是HTML實體?
1、 在 HTML 中,某些字符是預留的。
2、在 HTML 中不能使用小于號(<)和大于號(>),這是因為瀏覽器會誤認為它們是標簽,當然在HTML中還有其他實體
3、如果希望正確地顯示預留字符,我們必須在HTML源代碼中使用字符實體(character entities)。
4、如需顯示小于號,我們必須這樣寫:< 或 <使用實體名而不是數字的好處是,名稱易于記憶。不過壞處是,瀏覽器也許并不支持所有實體名稱(對實體數字的支持卻很好)。
示例:
<?php$str = "Apple & 'Orange'"; echo htmlspecialchars($str, ENT_COMPAT); // 默認,僅編碼雙引號 //在右鍵查看源代碼下結果為:Apple & 'Orange' echo htmlspecialchars($str, ENT_QUOTES); // 編碼雙引號和單引號 //在右鍵查看源代碼下結果為:Apple & 'Orange' echo htmlspecialchars($str, ENT_NOQUOTES); // 不編碼任何引號 //在右鍵查看源代碼下結果為:Apple & 'Orange'//擴展閱讀htmlspecialchars_decode() — 將特殊的 HTML 實體轉換回普通字符?>
補充:htmlspecialchars_decode() — 將特殊的 HTML 實體轉換回普通字符
htmlspecialchars_decode() 函數把一些預定義的 HTML 實體轉換為字符。
被解碼的 HTML 實體:
& 解碼成 & (和號)
" 解碼成 " (雙引號)
' 解碼成 ' (單引號)
< 解碼成 < (小于)
> 解碼成 > (大于)
示例:
<?php$str = "This is some <b>bold</b> text.";echo htmlspecialchars_decode($str);?>
輸出:
This is some <b>bold</b> text..
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選