php過濾htmlspecialchars() 函數實現把預定義的字符轉換為 HTML 實體用法分析
本文實例講述了php過濾htmlspecialchars() 函數實現把預定義的字符轉換為 HTML 實體用法。分享給大家供大家參考,具體如下:
這個函數非常重要,特別是在處理中文字符時,同時開發(fā)過程中往往需對寫入數據庫或讀取數據庫的數據進行處理。
htmlspecialchars(string,flags,character-set,double_encode)
1、string:必需。規(guī)定要轉換的字符串。
2、flags:可選,規(guī)定如何處理引號、無效的編碼以及使用哪種文檔類型,如ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES
3、character-set:可選,顧名思義字符集,默認utf-8,當然支持很多編碼,這里不列舉
4、double_encode:可選,一個規(guī)定了是否編碼已存在的 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..
PS:這里再為大家推薦幾款相關在線工具供大家參考使用:
HTML/XML轉義字符對照表:
http://tools.jb51.net/table/html_escape
在線HTML轉義/反轉義工具:
http://tools.jb51.net/transcoding/html_transcode
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php常用函數與技巧總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。