這個函數非常重要,特別是在處理中文字符時,同時開發過程中往往需對寫入數據庫或讀取數據庫的數據進行處理。
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 實體轉換回普通字符 ?>