函数名称:htmlentities()
适用版本:所有版本
函数介绍:htmlentities() 函数将字符串中的特殊字符转换为HTML实体。它可以防止在HTML文档中出现特殊字符造成的错误或安全问题。
语法:htmlentities(string $string, int $flags = ENT_COMPAT | ENT_HTML401, string|null $encoding = null, bool $double_encode = true): string
参数:
- $string(必需):要转换的字符串。
- $flags(可选):指定转换的规则和HTML版本。默认为 ENT_COMPAT | ENT_HTML401,表示使用HTML 4.01规范中的转换规则。其他可能的值有:ENT_QUOTES(转换单引号和双引号)、ENT_NOQUOTES(不转换引号)、ENT_HTML5(使用HTML5规范中的转换规则)等。
- $encoding(可选):指定要使用的字符编码。默认为 null,表示使用脚本的默认字符编码。
- $double_encode(可选):指定是否对已经存在的HTML实体进行二次转换。默认为 true,表示进行二次转换,防止实体被转换为实体。
返回值:返回转换后的字符串。
示例:
$input = "I'm a <strong>PHP</strong> developer!";
$output = htmlentities($input);
echo $output;
// 输出:I'm a <strong>PHP</strong> developer!
$input = "I'm a <strong>PHP</strong> developer!";
$output = htmlentities($input, ENT_QUOTES);
echo $output;
// 输出:I'm a <strong>PHP</strong> developer!
$input = "I'm a <strong>PHP</strong> developer!";
$output = htmlentities($input, ENT_QUOTES, 'UTF-8');
echo $output;
// 输出:I'm a <strong>PHP</strong> developer!
$input = "I'm a <strong>PHP</strong> developer!";
$output = htmlentities($input, ENT_QUOTES, 'UTF-8', false);
echo $output;
// 输出:I'm a <strong>PHP</strong> developer!
注意事项:
- 为了避免XSS攻击,请在输出用户输入的内容时使用htmlentities()函数。
- 如果已经对字符串进行过转义,设置$double_encode参数为false可以避免对已存在的HTML实体进行二次转换。