htmlspecialchars — 将特殊字符转换为 HTML 实体?
发布网友
发布时间:2022-04-24 05:09
我来回答
共2个回答
懂视网
时间:2022-04-19 08:49
HTML 字符实体
HTML 中的预留字符必须被替换为字符实体。
HTML 实体
在 HTML 中,某些字符是预留的。(推荐学习:HTML入门教程)
在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。
如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。
字符实体类似这样:
&entity_name;
或者
entity_number;
如需显示小于号,我们必须这样写:< 或 <
提示:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。
不间断空格(non-breaking space)
HTML 中的常用字符实体是不间断空格( )。
浏览器总是会截短 HTML 页面中的空格。如果您在文本中写 10 个空格,在显示该页面之前,浏览器会删除它们中的 9 个。如需在页面中增加空格的数量,您需要使用 字符实体。
HTML 中有用的字符实体
注释:实体名称对大小写敏感!
热心网友
时间:2022-04-19 05:57
这个函数在很多场合下都能使用,这是整理后的希望能帮到你。
函数名: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);
?>