You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目中CKEditor存储内容前端显示为纯字符串而非HTML如何解决

问题原因
  • Laravel Blade 模板的默认输出语法 {{ }} 会自动对输出内容做HTML实体转义,这是框架内置的XSS攻击防护机制,因此直接用该语法输出富文本内容时,所有HTML标签都会被转为纯文本展示,不会被浏览器解析渲染。
  • 你在存储内容前对CKEditor的输出做了json_encode处理,从数据库读取内容后如果未先执行json_decode还原为原始HTML字符串,直接输出也会展示JSON格式的纯文本。
解决方案
  1. 先处理读取到的数据库内容:对取出的字段执行json_decode操作,还原得到原始富文本HTML字符串,示例代码如下:
// 第二个参数设为true可返回数组格式,可根据你实际存储的结构调整参数
$aboutUsContent = json_decode($yourDatabaseField, true);
  1. 替换Blade模板的输出语法:将原有的{{ }}输出写法替换为Blade的非转义输出语法 {!! !!},该语法不会对内容做HTML转义,会直接输出原始内容供浏览器解析,示例写法如下:
{!! $aboutUsContent !!}

安全提示:由于非转义输出会直接解析HTML内容,你需要确保只有可信的后台管理员可以操作CKEditor编辑器,避免恶意人员插入危险脚本引发XSS安全问题。如果需要对外开放编辑器权限,建议引入HTMLPurifier等工具对富文本内容做标签过滤后再输出。

内容的提问来源于stack exchange,提问作者Adnan Nawaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:06:02