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

htmlentities

(PHP 4, PHP 5, PHP 7)

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

描述

代码语言:javascript
复制
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()示例

代码语言:javascript
复制
<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

示例#2 ENT_IGNORE的用法

代码语言:javascript
复制
<?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 →

扫码关注腾讯云开发者

领取腾讯云代金券