【PHP】Laravel将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”了。

总结

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

posted @ 2018-10-12 11:22  李文和  阅读(1219)  评论(0编辑  收藏  举报