htmlentities
htmlentities
(PHP 4, PHP 5, PHP 7)
htmlentities - 将所有适用的字符转换为HTML实体
描述
string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )
这个函数与htmlspecialchars()在所有方面都是相同的,除了htmlentities()
,所有具有HTML字符实体等价物的字符都被转换为这些实体。
如果你想解码(倒转),你可以使用html_entity_decode()。
参数
string
输入字符串。
flags
一个或多个以下标志的位掩码,指定如何处理引号,无效的代码单元序列和使用的文档类型。缺省值是ENT_COMPAT | ENT_HTML401
。
常数名称 | 描述 |
---|---|
ENT_COMPAT | 将转换双引号并单独留下单引号。 |
ENT_QUOTES | 将转换双引号和单引号。 |
ENT_NOQUOTES | 将留下双重和单引号未转换。 |
ENT_IGNORE | 无声地丢弃无效的代码单元序列,而不是返回空字符串。不鼓励使用这个标志,因为它可能有安全隐患。 |
ENT_SUBSTITUTE | 用Unicode替换字符U + FFFD(UTF-8)或&#FFFD替换无效的代码单元序列; (否则)而不是返回一个空字符串。 |
ENT_DISALLOWED | 用Unicode替换字符U + FFFD(UTF-8)或&#FFFD替换给定文档类型的无效代码点; (否则)而不是保持原样。例如,这可能对确保具有嵌入式外部内容的XML文档格式良好有用。 |
ENT_HTML401 | 将代码作为HTML 4.01处理。 |
ENT_XML1 | 将代码作为XML处理1。 |
ENT_XHTML | 将代码作为XHTML处理。 |
ENT_HTML5 | 将代码处理为HTML 5。 |
encoding
定义转换字符时使用的编码的可选参数。
如果省略,则默认值encoding
取决于正在使用的PHP版本。在PHP 5.6和更高版本中,default_charset配置选项用作默认值。PHP 5.4和5.5将使用UTF-8
作为默认值。早期版本的PHP使用ISO-8859-1
。
虽然这个参数在技术上是可选的,但是如果您使用PHP 5.5或更早版本,或者您的default_charset配置选项可能被错误地设置为给定输入,那么强烈建议您为代码指定正确的值。
支持以下字符集:
字符集 | 别名 | 描述 |
---|---|---|
ISO-8859-1 | ISO8859-1 | 西欧,拉丁-1。 |
ISO-8859-5 | ISO8859-5 | 很少使用西里尔文字符(拉丁文/西里尔文)。 |
ISO-8859-15 | ISO8859-15 | 西欧,拉丁9。添加拉丁文-1(ISO-8859-1)中缺少的欧元符号,法文和芬兰文字母。 |
UTF-8 | | ASCII兼容的多字节8位Unicode。 |
CP866 | ibm866,866 | DOS特定的西里尔文字符集。 |
CP1251 | Windows-1251,win-1251,1251 | 特定于Windows的西里尔文字符集。 |
CP1252 | Windows-1252,1252 | 西欧的Windows特定字符集。 |
KOI8-R | koi 8 - ru,koi 8 r | 俄语。 |
BIG5 | 950 | 繁体中文,主要用于台湾。 |
GB2312 | 936 | 简体中文,国家标准字符集。 |
BIG5-HKSCS | | Big5与香港扩展,繁体中文。 |
SHIFT_JIS | SJIS,SJIS-win,cp932,932 | 日语 |
EUC-JP | EUCJP,eucJP-win | 日语 |
的MacRoman | | Mac OS使用的字符集。 |
'' | | 一个空字符串按此顺序激活脚本编码(Zend多字节),default_charset和当前语言环境(请参阅nl_langinfo()和setlocale())的检测。不建议。 |
注意
:任何其他字符集都不被识别。将使用默认编码,并发出警告。
double_encode
当关闭double_encode时,PHP将不编码现有的html实体。 默认转换一切。
返回值
返回编码的字符串。
如果输入字符串在给定编码中包含无效的代码单元序列,则将返回一个空字符串,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志。
更新日志
版 | 描述 |
---|---|
5.6.0 | 编码参数的默认值已更改为default_charset配置选项的值。 |
5.4.0 | 编码参数的默认值已更改为UTF-8。 |
5.4.0 | 添加了常量ENT_SUBSTITUTE,ENT_DISALLOWED,ENT_HTML401,ENT_XML1,ENT_XHTML和ENT_HTML5。 |
5.3.0 | 常量ENT_IGNORE被添加。 |
5.2.3 | double_encode参数被添加。 |
例子
示例#1 一个htmlentities()示例
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES
?>
示例#2 ENT_IGNORE的用法
<?php
$str = "\x8F!!!";
// Outputs an empty string
echo htmlentities($str, ENT_QUOTES, "UTF-8"
// Outputs "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8"
?>
扩展内容
- html_entity_decode() - 将所有HTML实体转换为适用的字符
- get_html_translation_table() - 返回htmlspecialchars和htmlentities使用的转换表
- htmlspecialchars() - 将特殊字符转换为HTML实体
- nl2br() - 在字符串中的所有换行符之前插入HTML换行符
- urlencode() - URL编码字符串
← html_entity_decode
htmlspecialchars_decode →