PHP htmlspecialchars() 函數
實例
把預定義的字符"<" (小於)和">" (大於)轉換為HTML 實體:
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
$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>
<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 = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>
上面代碼的HTML 輸出如下(查看源代碼):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</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 實體:
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
上面代碼的HTML 輸出如下(查看源代碼):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
<html>
<body>
I love "PHP".
</body>
</html>
上面代碼的瀏覽器輸出如下:
I love "PHP".
運行實例»
PHP String參考手冊