PHPLaravel将HTML实体转换回普通字符

Posted 李文和的后花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPLaravel将HTML实体转换回普通字符相关的知识,希望对你有一定的参考价值。

问题

最近一个laravel模板的项目需要用到summernote富文本编辑器,内容保存到数据库里是原始的html代码。再读取出来时使用htmlspecialchars_decode()对内容进行转换,但输出的结果还是html代码。如“<p>123</p>”,输出的结果应该是“123”,但是实际上转换并没有成功。在使用中表明,Laravel并不能像Thinkphp那样使用htmlspecialchars_decode()对html代码进行转换。

解决办法

查看Laravel官网的文档,发现文档的Blade模板引擎那一节有写到如何显示原生数据。文档里提到,默认情况下,Blade 的 {{ }} 语句已经通过 PHP 的 htmlentities 函数处理以避免 XSS 攻击。所以如果想显示原生数据,应该在Blade模板中这样写

Hello, {!! $name !!}.

就可以成功输出“123”了。

总结

主要问题还是看文档时没有认真看,太过于囫囵吞枣,结果浪费了自己的时间,希望自己能够引以为戒吧。

以上是关于PHPLaravel将HTML实体转换回普通字符的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有“(ISO-8859-1)字符的字符串转换为普通(UTF-8)字符?

HTML实体代码到文本[重复]

php如休将已经被html化的字符串转换回原来的字符串!!

如何将空间数据帧转换回普通数据帧?

使用 Java 标准库将 HTML 字符转换回文本

Django admin 将 HTML 实体转换为它们的字符