HTML 的实体编码(HTML Entity Encode)

html-css07

HTML 的实体编码(HTML Entity Encode),第1张

以上列出的一些实体比较容易记忆,但有一些不容易记住的您可以查看 whatwg 或使用 解码工具 。

HTML 实体是一段以连字符号( &)开头、以分号( )结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)

在前端,一般为了避免 XSS 攻击,会将 <> 编码为 < 与 >,这些就是 HTML 实体编码。

在 HTML 转义时,仅仅只需要对六个字符进行编码: &、 <、 >、 " 、 ' 和 `。我们可以使用 he 库进行编码及转义。

这个函数在很多场合下都能使用,这是整理后的希望能帮到你。

函数名:htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符

说明

htmlspecialchars_decode ( string $string , int $flags = ENT_COMPAT | ENT_HTML401 ) : string

此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。

被转换的实体有: &, " (没有设置ENT_NOQUOTES 时), ' (设置了 ENT_QUOTES 时), <以及>。

参数

string

要解码的字符串

flags

用下列标记中的一个或多个作为一个位掩码,来指定如何处理引号和使用哪种文档类型。默认为 ENT_COMPAT | ENT_HTML401。

有效的 flags 常量

常量名 说明

ENT_COMPAT 转换双引号,不转换单引号。

ENT_QUOTES 单引号和双引号都转换。

ENT_NOQUOTES 单引号和双引号都不转换。

ENT_HTML401 作为HTML 4.01编码处理。

ENT_XML1 作为XML 1编码处理。

ENT_XHTML 作为XHTML编码处理。

ENT_HTML5 作为HTML 5编码处理。

返回值

返回解码后的字符串。

更新日志

版本 说明

5.4.0 增加了 ENT_HTML401、ENT_XML1、 ENT_XHTML 和 ENT_HTML5 等常量。

范例

示例 #1 一个 htmlspecialchars_decode() 的例子

this ->"

\n"

echo htmlspecialchars_decode($str)

// 注意,这里的引号不会被转换

echo htmlspecialchars_decode($str, ENT_NOQUOTES)

?>