【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”了。

总结

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM