首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

html_entity_decode - 将所有HTML实体转换为适用的字符

描述

代码语言:javascript
复制
string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

html_entity_decode()与htmlentities()相反,它将字符串中的所有HTML实体转换为适用的字符。

更准确地说,这个函数解码所有的实体(包括所有的数字实体):a)对于所选择的文档类型必须是有效的 - 即对于XML,这个函数不解码可能在某些DTD中定义的命名实体 - 以及b)其中的字符或字符位于与所选编码相关联的编码字符集中并且在所选文档类型中被允许。所有其他实体保持原样。

参数

string

输入字符串。

flags

一个或多个以下标志的位掩码,指定如何处理引号和要使用的文档类型。缺省值是ENT_COMPAT | ENT_HTML401

常数名称

描述

ENT_COMPAT

将转换双引号并单独留下单引号。

ENT_QUOTES

将转换双引号和单引号。

ENT_NOQUOTES

将留下双重和单引号未转换。

ENT_HTML401

将代码作为HTML 4.01处理。

ENT_XML1

将代码作为XML处理1。

ENT_XHTML

将代码作为XHTML处理。

ENT_HTML5

将代码处理为HTML 5。

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())的检测。不建议。

注意:任何其他字符集都不被识别。将使用默认编码,并发出警告。

返回值

返回解码的字符串。

更新日志

描述

5.6.0

编码参数的默认值已更改为default_charset配置选项的值。

5.4.0

默认编码从ISO-8859-1更改为UTF-8。

5.4.0

添加了常量ENT_HTML401,ENT_XML1,ENT_XHTML和ENT_HTML5。

例子

Example#1 解码HTML实体

代码语言:javascript
复制
<?php
$orig?=?"I'll?\"walk\"?the?<b>dog</b>?now";

$a?=?htmlentities($orig);

$b?=?html_entity_decode($a);

echo?$a;?//?I'll?&quot;walk&quot;?the?&lt;b&gt;dog&lt;/b&gt;?now

echo?$b;?//?I'll?"walk"?the?<b>dog</b>?now
?>

注意

注意:你可能想知道为什么trim(html_entity_decode('')); 不会将字符串减少为空字符串,这是因为实体不是ASCII码32(它被trim()剥离),而是ASCII码160(0xa0)在默认的ISO 8859-1编码中。

扩展内容

  • htmlentities() - 将所有适用的字符转换为HTML实体
  • htmlspecialchars() - 将特殊字符转换为HTML实体
  • get_html_translation_table() - 返回htmlspecialchars和htmlentities使用的转换表
  • urldecode() - 解码URL编码的字符串

← hex2bin

htmlentities →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com