在PHP中,字符串函数 htmlspecialchars() 用于把一些预定义的字符转换为 HTML 实体。
函数语法:
htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string
函数参数说明:
参数 | 描述 |
---|---|
string | 必需。规定要转换的字符串。 |
flags | 可选。规定如何处理引号、无效的编码以及使用哪种文档类型。 可用的引号类型:
无效的编码:
规定使用的文档类型的附加 flags:
|
character-set | 可选。一个规定了要使用的字符集的字符串。 允许的值:
注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。 |
double_encode | 可选。一个规定了是否编码已存在的 HTML 实体的布尔值。
|
htmlspecialchars() 函数是 htmlspecialchars_decode() 函数的反函数。用于把一些预定义的字符转换为 HTML 实体。
举例1,编码特殊字符(默认仅编码双引号):
<?php
$str = "hello \"world\" & 'china'";
// 编码特殊字符(默认仅编码双引号)
echo htmlspecialchars($str);
以上代码输出的HTML代码如下(只解码了双引号):
hello "world" & 'china'
在浏览器中输出如下:
hello "world" & 'china'
举例2,编码特殊字符(编码双引号和单引号):
<?php
$str = "hello \"world\" & 'china'";
// 编码特殊字符(编码双引号和单引号)
echo htmlspecialchars($str, ENT_QUOTES);
以上代码输出的HTML代码如下(编码了双引号和单引号):
hello "world" & 'china'
在浏览器中输出如下:
hello "world" & 'china'
举例3,不编码任何引号:
<?php
$str = "hello \"world\" & 'china'";
// 编码特殊字符(不编码任何引号)
echo htmlspecialchars($str, ENT_NOQUOTES);
以上代码输出的HTML代码如下(不编码任何引号):
hello "world" & 'china'
在浏览器中输出如下:
hello "world" & 'china'