PHP htmlentities()函数的用法
PHP htmlentities()函数是 PHP 内置的一个用于将一个字符串中的特殊字符转换为 HTML 实体引用的函数。HTML 实体引用通常用于在HTML页面中插入字符,HTML 实体引用表示为“&”符号,后面跟着一个字符串,然后再是一个分号。
函数格式:
string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )
参数说明:
1. $string:必需,转换为 HTML 实体引用的字符串。
2. $flags:可选,可接受以下常量值:
- ENT_COMPAT:默认值。仅转换双引号。
- ENT_QUOTES:同时转换双引号和单引号。
- ENT_NOQUOTES:不转换任何引号。
3. $encoding:可选,字符集编码,默认为 ini_get("default_charset")。
4. $double_encode:可选,指定是否将现有 HTML 实体引用转换回其原始字符。默认值为 TRUE。
函数返回值:
返回一个字符串,其中所有的字符都被转换为 HTML 实体引用。
使用实例:
以下实例演示如何使用该函数:
<?php $str = "<a href='http://www.baidu.com'>百度</a>"; echo htmlentities($str, ENT_COMPAT, "UTF-8"); ?>
以上实例输出:
<a href='http://www.baidu.com'>百度</a>
可以看到,原字符串中的特殊字符都被转换成了 HTML 实体引用。
注意事项:
1. 当设置 $flags 参数为 ENT_QUOTES 时,单引号会被转义成为 HTML 实体引用 ',而不是直接转成 ',这是因为在 HTML4 中,' 不是一种有效的实体名称。
2. 在 PHP5.4.0 之前的版本,如果没有设置 $encoding 参数,将不会进行任何编码,而是直接返回原始字符串。从 PHP5.4.0 开始,如果没有设置 $encoding 参数,将使用 ini_get("default_charset") 作为默认编码。
3. 如果将 $double_encode 参数设置为 FALSE,现有的 HTML 实体引用也不会被转换回它们的原始字符。
