PHP htmlspecialchars() 函數
實例
把預定義的字符 "<" (小于)和 ">" (大于)轉換為 HTML 實體:
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> This is some <b>bold</b> text. </body> </html>
以上代碼的瀏覽器輸出:
This is some <b>bold</b> text.
定義和用法
htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體。
預定義的字符是:
- & (和號)成為 &
- " (雙引號)成為 "
- ' (單引號)成為 '
- < (小于)成為 <
- > (大于)成為 >
提示:如需把特殊的 HTML 實體轉換回字符,請使用 htmlspecialchars_decode() 函數。
語法
htmlspecialchars(string,flags,character-set,double_encode)
參數 | 描述 |
---|---|
string | 必需。規定要轉換的字符串。 |
flags |
可選。規定如何處理引號、無效的編碼以及使用哪種文檔類型。 可用的引號類型:
無效的編碼:
規定使用的文檔類型的附加 flags:
|
character-set |
可選。一個規定了要使用的字符集的字符串。 允許的值:
注釋:在 PHP 5.4 之前的版本,無法被識別的字符集將被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,無法被識別的字符集將被忽略并由 UTF-8 替代。 |
double_encode |
可選。布爾值,規定了是否編碼已存在的 HTML 實體。
|
技術細節
返回值: |
返回被轉換的字符串。 如果 string 包含無效的編碼,則返回一個空的字符串,除非設置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 標志。 |
PHP 版本: | 4+ |
更新日志: |
在 PHP 5 中,character-set 參數的默認值改為 UTF-8。 在 PHP 5.4 中,新增了:ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 和 ENT_XHTML。 在 PHP 5.3 中,新增了 ENT_IGNORE。 在 PHP 5.2.3 中,新增了 double_encode 參數。 在 PHP 4.1 中,新增了 character-set 參數。 |
更多實例
例子 1
把一些預定義的字符轉換為 HTML 實體:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // 只轉換雙引號 echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES);// 轉換雙引號和單引號 echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // 不轉換任何引號 ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
以上代碼的瀏覽器輸出:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
例子 2
把雙引號轉換為 HTML 實體:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // 轉換雙引號和單引號 ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> I love "PHP". </body> </html>
以上代碼的瀏覽器輸出:
I love "PHP".