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 | 可选。规定如何处理引号、无效编码以及使用的文档类型。 可用的引号样式是
无效编码
指定文档类型的附加标志
|
字符集 | 可选。一个字符串,指定要使用的字符集。 允许的值是
注意: 在 PHP 5.4 之前的版本中,无法识别的字符集将被忽略并替换为 ISO-8859-1。从 PHP 5.4 开始,它将被忽略并替换为 UTF-8。 |
double_encode | 可选。一个布尔值,规定是否编码已存在的 html 实体。
|
技术详情
返回值 | 返回转换后的字符串 如果 string 包含无效编码,它将返回空字符串,除非设置了 ENT_IGNORE 或 ENT_SUBSTITUTE 标志 |
---|---|
PHP 版本 | 4+ |
更新日志 | PHP 5.6 - 将character-set参数的默认值更改为配置中的默认字符集值。 PHP 5.4 - 将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 参数。 |
更多示例
示例
将一些预定义的字符转换为 HTML 实体
<?php
$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'
自己动手试一试 »
示例
将双引号转换为 HTML 实体
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
?>
上述代码的 HTML 输出是 (查看源代码)
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
上述代码的浏览器输出是
I love "PHP".
自己动手试一试 »
❮ PHP 字符串参考