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

如何使用PHP从数据库读取富文本并在HTML中正确渲染原有格式

问题原因

你现在看到HTML标签原样展示,是因为内容中的<、>等HTML特殊字符被转换成了实体编码(比如<转成了&lt;),浏览器会将这类实体编码识别为普通文本,不会解析成对应的HTML标签,自然没法保留原排版格式。

解决方法

分两种场景处理:

  • 场景1:输出内容时主动做了转义处理
    如果你在输出$post_content之前调用了htmlspecialchars()、htmlentities()这类转义函数,直接去掉转义逻辑,直接输出原内容即可:
<p><?php echo $post_content ?></p>
  • 场景2:数据库中存储的内容本身已经是转义后的实体编码
    如果入库时就已经对内容做了实体转义,输出时需要先把实体编码转回HTML标签,调用htmlspecialchars_decode()或者html_entity_decode()处理即可:
<p><?php echo htmlspecialchars_decode($post_content) ?></p>

注意事项

直接渲染用户提交的原生HTML内容存在XSS跨站脚本攻击风险,建议输出前先做标签白名单过滤,只保留<b>、<p>、<h2>这类你允许的安全排版标签,过滤掉<script>、<iframe>等危险标签,避免被注入恶意代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:00