微信小程序不支持直接渲染HTML,需用wxParse或towxml转换;后端PHP必须用HTMLPurifier清洗HTML并补全HTTPS图片链接,且域名须配置合法请求白名单。

微信小程序不支持直接渲染 HTML 字符串,PHP 后端返回的富文本(如带 <p>、<img>、<strong> 的内容)必须在小程序端做安全转换,不能用 dangerouslySetInnerHTML 类机制。
小程序端必须用 wxParse 或 towxml 解析 HTML 字符串
原生 <rich-text> 组件能力极弱:只支持有限标签(<span>、<br>、<img>),不支持 <p>、<div>、内联样式、class、自定义属性;遇到未知标签会直接丢弃整段内容。
-
wxParse是较成熟的轻量方案,把 HTML 转成 WXML 节点树,支持图片懒加载、自定义样式映射 -
towxml功能更强(支持表格、代码块、MathML),但体积大、需额外配置域名白名单和 HTTPS - 若后端返回的是 JSON 格式富文本(如 Tiptap 导出的 JSON),不要转成 HTML 再解析——应直接用对应渲染器(如
@towxml/json)
PHP 后端要避免直接输出未过滤的 HTML
用户提交的富文本可能含 <script>、onerror、javascript: 伪协议。PHP 必须清洗后再返回给小程序:
播客文章生成器。将音频文字稿、节目链接、摘要笔记转化为结构清晰、适合发布的图文文章。支持多种输出风格(深度解析、精华摘要、对话体重构、社交媒体切片)和多种输出格式(Markdown、微信公众号、知乎、企业内刊)。触发词:播客文章、播客转文章、podcast to article、podcast article
- 用
htmlspecialchars()不够——它只转义,不移除危险标签 - 推荐用
HTMLPurifier库(需 Composer 安装),配置白名单:<p>、<strong>、<em>、<img>(限制src协议为https://)、<br> - 若不用第三方库,可用
strip_tags()+ 正则粗筛,但无法处理属性 XSS,仅限内部可信内容
<img> 标签的 src 必须是合法 HTTPS 域名且已加到小程序 request 合法域名
小程序 <rich-text> 和 wxParse 渲染的图片,都受网络请求域权限控制。常见问题:
立即学习“PHP免费学习笔记(深入)”;
- 后端返回的
<img src="http://xxx.jpg">→ 小程序直接不加载(HTTP 被拦截) - 返回相对路径
<img src="/upload/1.jpg">→ 404(没拼 base URL) - 正确做法:PHP 输出前统一补全为完整 HTTPS 链接,例如
https://api.example.com/upload/1.jpg - 同时确认该域名已在小程序后台「开发管理 > 开发者工具 > 服务器域名」中添加到
request白名单
真正麻烦的不是解析 HTML,而是图片资源路径合法性、样式还原精度、以及服务端清洗粒度——这三个点没对齐,前端再换几个解析库也白搭。


















