php中html_entity_decode实现HTML实体转义

yipeiwu_com6年前PHP代码库

最近遇到一个问题,数据中包含中文引号,结果被转义存储到数据库,取数据的时候用了htmlspecialchars_decode把实体转义回去,结果发现并没有生效,看了一下htmlspecialchars_decode只支持5个指定的实体转换,其他的[我遇到的是中文引号&ldrquo;]

因此发现了html_entity_decode可以把所有的实体转义回去~

另外,如果你在浏览器中测试,会发现是转义回去的,这是因为浏览器自动给处理了。实际上是没有转回去的,可以到命令行试试哦~~

html_entity_decode:把所有的html实体转换为原来的字符

与htmlentities() 相反

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

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

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

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

所以并不能把不包含在以上5个的其他转换回去。

实例

把 HTML 实体转换为字符:

<?php
$str = "<© W3CSçh°°¦§>";
echo html_entity_decode($str);
?>

上面代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
<© W3CSçh°°¦§>
</body>
</html>

上面代码的浏览器输出如下:

<© W3CSçh°°¦§>

相关文章

关于PHP session 存储方式的详细介绍

PHP为sesion的存储提供了三种方式: 文件/ 内存/ 自定义存储,默认是使用文件存储.在访问量大的网站上采用这种方式就不大合适,因为这样会导致大量的输入输出的冗余.下面介绍一种基于...

php中__toString()方法用法示例

本文实例讲述了php中__toString()方法。分享给大家供大家参考,具体如下: 我们前面说过在类里面声明“--”开始的方法名的方法,都是在某一时刻不同情况下自动调用执行的方法。“_...

php获取今日开始时间和结束时间的方法

话不多说,请看代码:  $begintime=date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y')))...

解析PHP处理换行符的问题 \r\n

一首先说说 \r 与\n的区别回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletyp...

php实现改变图片直接打开为下载的方法

本文实例讲述了php实现改变图片直接打开为下载的方法。分享给大家供大家参考。具体如下: process.php文件如下: $file = $_GET['file']; header(...