PHP htmlspecialchars() 函数
说明
htmlspecialchars()
函数将在 HTML 上下文中具有特殊含义的字符转换为其等效的 HTML 实体。 以下字符被视为特殊字符:
&
(ampersand) converted to&
"
(double quote) converted to"
, unlessENT_NOQUOTES
is set.'
(single quote) converted to'
(forENT_HTML401
, this is default) or'
(forENT_XML1
,ENT_XHTML
orENT_HTML5
), but only whenENT_QUOTES
is 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".
查看源代码(右键单击并选择查看页面源代码)以查看转换后的字符串。