PHP htmlentities() 函數
實例
把字符轉換為 HTML 實體:
<?php $str = "<? W3S?h????>"; echo htmlentities($str); ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> <© W3Sçh°°¦§> </body> </html>
以上代碼的瀏覽器輸出:
<? W3S?h????>
定義和用法
htmlentities() 函數把字符轉換為 HTML 實體。
提示:要把 HTML 實體轉換回字符,請使用 html_entity_decode() 函數。
提示:請使用 get_html_translation_table() 函數來返回 htmlentities() 使用的翻譯表。
語法
htmlentities(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 htmlentities($str, ENT_COMPAT); // 只轉換雙引號 echo "<br>"; echo htmlentities($str, ENT_QUOTES); // 轉換雙引號和單引號 echo "<br>"; echo htmlentities($str, ENT_NOQUOTES); // 不轉換任何引號 ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Tarzan'<br> Bill & 'Steve' </body> </html>
以上代碼的瀏覽器輸出:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
例子 2
通過使用西歐字符集,把一些字符轉換為 HTML 實體:
<?php $str = "My name is ?yvind ?sane. I'm Norwegian."; echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Will only convert double quotes (not single quotes), and uses the character-set Western European ?>
以上代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html> <html> <body> My name is Øyvind Åsane. I'm Norwegian. </body> </html>
以上代碼的瀏覽器輸出:
My name is ?yvind ?sane. I'm Norwegian.