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 實體轉換回普通字符 
?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM