PHP htmlspecialchars() 函數
實例
把預定義的字元 "<" (小於)和 ">" (大於)轉換為 HTML 實體:
$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 實體:
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // 默認,僅編碼雙引號
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // 編碼雙引號和單引號
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // 不編碼任何引號
上面代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
上面代碼的流覽器輸出如下:
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
實例 2
把雙引號轉換為 HTML 實體:
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // 編碼雙引號和單引號
;上面代碼的 HTML 輸出如下(查看源代碼):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
上面代碼的流覽器輸出如下:
I love "PHP".
