PHP htmlspecialchars() 函数
示例
将预定义的字符 "<"(小于)和 ">"(大于)转换为 HTML 实体
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
上面代码的 HTML 输出将是(查看源代码)
<!DOCTYPE html>
<html>
<body>
这是一些<b>粗体</b>文本。
</body>
</html>
以上代码在浏览器中的输出将是
这是一些<b>粗体</b>文本。
自己尝试一下 »
定义和用法
htmlspecialchars() 函数将一些预定义的字符转换为 HTML 实体。
预定义的字符是
- & (和号) 变成 &
- " (双引号) 变成 "
- ' (单引号) 变成 '
- < (小于) 变成 <
- > (大于) 变成 >
提示: 要将特殊 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
语法
htmlspecialchars(string,flags,character-set,double_encode)
参数值
参数 | 描述 |
---|---|
string | 必需。指定要转换的字符串。 |
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.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 字符串参考