PHP htmlspecialchars() 函数
说明
htmlspecialchars() 函数将在 HTML 上下文中具有特殊含义的字符转换为其等效的 HTML 实体。 以下字符被视为特殊字符:
&(ampersand) converted to&"(double quote) converted to", unlessENT_NOQUOTESis set.'(single quote) converted to'(forENT_HTML401, this is default) or&apos;(forENT_XML1,ENT_XHTMLorENT_HTML5), but only whenENT_QUOTESis set.<(less than) converted to<>(greater than) converted to>
此函数通常会反转 htmlspecialchars_decode() 函数的效果。
下表总结了该函数的技术细节。
| 返回值: | 返回转换后的字符串。 如果输入字符串在给定的 charset 中包含无效的代码序列,它将返回一个空字符串,除非 ENT_IGNORE 或 ENT_SUBSTITUTE< /code> 标志已设置。 |
|---|---|
| 版本: | PHP 4+ |
语法
htmlspecialchars() 函数的基本语法如下:
下面的例子展示了 htmlspecialchars() 函数的作用。
<?php
// 示例字符串
$str = "It's an <b>amazing</b> story.";
// 转换字符串
echo htmlspecialchars($str);
?>
上述示例的输出将是(查看源代码以获取想法):
但是,在浏览器中,您会看到如下内容:
注意: htmlspecialchars() 在所有方面都与 htmlentities() 相同,只是 htmlspecialchars() 仅替换 &, <, 和 >,具有单引号和双引号选项。 但是 htmlentities() 替换了所有可以用 HTML 字符实体表示的字符。
提示:您可以使用 get_html_translation_table() 函数返回在内部用于 htmlspecialchars() 和 htmlentities() 函数的转换表。
参数
htmlspecialchars() 函数接受以下参数。
| 参数 | 说明 |
|---|---|
| string | 必填。 指定要转换的字符串。 |
| flags |
可选。 指定如何处理引号、无效代码序列以及要使用的文档类型。 您可以指定以下一个或多个标志。 处理引号的可用标志常量是:
用于处理无效代码序列的可用标志常量是:
用于指定文档类型的可用标志常量有:
此参数的默认值为 |
| charset |
可选。 指定要使用的字符集。 支持的字符集是:
如果省略此参数,则默认为 |
| double_encode | 可选。 一个布尔值,它指定是否对现有的 html 实体进行编码。 可能的值为 true 和 false。 默认值是 true 转换一切。 |
更多示例
这里有更多示例展示了 htmlspecialchars() 函数的实际工作原理:
以下示例演示了使用此函数处理单引号。
<?php
// 示例字符串
$str = "Let's <b>pack</b> \"bag & baggage\".";
// 只转换 <, > & 和双引号
$a = htmlspecialchars($str);
echo $a; // Let's <b>pack</b> "bag & baggage".
// 转换所有特殊字符
$b = htmlspecialchars($str, ENT_QUOTES);
echo $b; // Let's <b>pack</b> "bag & baggage".
// 将单引号转换为命名实体
$c = htmlspecialchars($str, ENT_QUOTES | ENT_HTML5);
echo $c; // Let's <b>pack</b> "bag & baggage".
?>
但是,在浏览器中,您将始终看到示例输出的字符串 Let's <b>pack</b> "bag & baggage". 查看源代码(右键单击并选择查看页面源代码)以查看转换后的字符串。
