欢迎访问宙启技术站
智能推送

PHP htmlentities()函数的用法

发布时间:2023-06-08 17:48:05

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");
?>

以上实例输出:

&lt;a href=&#039;http://www.baidu.com&#039;&gt;百度&lt;/a&gt;

可以看到,原字符串中的特殊字符都被转换成了 HTML 实体引用。

注意事项:

1. 当设置 $flags 参数为 ENT_QUOTES 时,单引号会被转义成为 HTML 实体引用 &apos;,而不是直接转成 &#039;,这是因为在 HTML4 中,&apos; 不是一种有效的实体名称。

2. 在 PHP5.4.0 之前的版本,如果没有设置 $encoding 参数,将不会进行任何编码,而是直接返回原始字符串。从 PHP5.4.0 开始,如果没有设置 $encoding 参数,将使用 ini_get("default_charset") 作为默认编码。

3. 如果将 $double_encode 参数设置为 FALSE,现有的 HTML 实体引用也不会被转换回它们的原始字符。