php過濾htmlspecialchars() 函數實現把預定義的字符轉換爲 HTML 實體用法分析

這篇文章主要介紹了php過濾htmlspecialchars() 函數實現把預定義的字符轉換爲 HTML 實體用法,結合實例形式分析了htmlspecialchars()函數針對HTML進行字符轉義的相關操作技巧,需要的朋友可以參考下

本文實例講述了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..

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程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章