PHP htmlentities() 函数
PHP htmlentities() 函数把字符转换为 HTML 实体
( PHP >= 4 )
函数原型
htmlentities( string,flags,character-set,double_encode )
要把 HTML 实体转换回字符,可以使用 html_entity_decode() 函数
要查看 htmlentities() 使用的翻译表,可以使用 get_html_translation_table() 函数返回
参数
参数 | 描述 |
---|---|
string | 必需。规定要转换的字符串 |
flags | 可选。规定如何处理引号、无效的编码以及使用哪种文档类型 还可以使用文档类型的附加 flags |
character-set | 可选。一个规定了要使用的字符集的字符串 |
double_encode | 可选。一个规定了是否编码已存在的 HTML 实体的布尔值 TRUE - 默认。将对每个实体进行转换 FALSE - 不会对已存在的 HTML 实体进行编码 |
参数 flag 可选值如下
值 | 描述 |
---|---|
ENT_COMPAT | 默认。仅编码双引号 |
ENT_QUOTES | 编码双引号和单引号 |
ENT_NOQUOTES | 不编码任何引号。无效的编码 |
ENT_IGNORE | 忽略无效的编码,而不是让函数返回一个空的字符串 应尽量避免,因为这可能对安全性有影响 |
ENT_SUBSTITUTE | 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串 |
ENT_DISALLOWED | 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD |
参数 flag 可选的附加值如下
值 | 描述 |
---|---|
ENT_HTML401 | 默认。作为 HTML 4.01 处理代码 |
ENT_HTML5 | 作为 HTML 5 处理代码 |
ENT_XML1 | 作为 XML 1 处理代码 |
ENT_XHTML | 作为 XHTML 处理代码 |
character-set 可选的字符集如下
字符集 | 描述 |
---|---|
UTF-8 | 默认。ASCII 兼容多字节的 8 位 Unicode |
ISO-8859-1 | 西欧 |
ISO-8859-15 | 西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母 |
cp866 | DOS 专用 Cyrillic 字符集 |
cp1251 | Windows 专用 Cyrillic 字符集 |
cp1252 | Windows 专用西欧字符集 |
KOI8-R | 俄语 |
BIG5 | 繁体中文,主要在台湾使用 |
GB2312 | 简体中文,国家标准字符集 |
BIG5-HKSCS | 带香港扩展的 Big5 |
Shift_JIS | 日语 |
EUC-JP | 日语 |
MacRoman | Mac 操作系统使用的字符集 |
在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代
自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代
返回值
返回已转换的字符串
如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志
更新日志
PHP 版本 | 更新说明 |
---|---|
PHP 5.4 | 新增了:ENT_SUBSTITUTE、ENT_DISALLOWED ENT_HTML401、ENT_HTML5 ENT_XML1 和 ENT_XHTML |
PHP 5.3 | 新增了 ENT_IGNORE |
PHP 5.2.3 | 新增了 double_encode 参数 |
PHP 4.1 | 新增了character-set参数 |
PHP 5 | character-set参数的默认值改为 UTF-8 |
范例
把一些字符转换为 HTML 实体
<?php $str = "<© TWleçh°°¦§>"; echo htmlentities($str);
运行以上 PHP 范例,输出结果如下
<© TWleçh°°¦§>
点击 "查看源码",结果如下
<© TWleçh°°¦§>gt;
范例 2
把一些字符转换为 HTML 实体
<?php $str = "Jane & 'Tarzan'"; echo htmlentities($str, ENT_COMPAT); echo "<br>"; echo htmlentities($str, ENT_QUOTES); echo "<br>"; echo htmlentities($str, ENT_NOQUOTES);
运行以上 PHP 范例,输出结果如下
Jane & 'Tarzan' Jane & 'Tarzan' Jane & 'Tarzan'
点击 "查看源码",结果如下
Jane & 'Tarzan'<br>Jane & 'Tarzan'<br>Jane & 'Tarzan'
范例 3
通过使用西欧字符集,把一些字符转换为 HTML 实体
<?php $str = "My name is Øyvind Åsane. I'm Norwegian."; echo htmlentities($str, ENT_QUOTES, "ISO-8859-1");
运行以上 PHP 范例,输出结果如下
My name is �yvind �sane. I'm Norwegian.
点击 "查看源码",结果如下
My name is �yvind �sane. I'm Norwegian.