绝大多数公开论坛默认禁用html,仅允许极少安全标签如、、、、、、、、、、,且常需手动开启源码模式;含script、style、div或外部资源的标签会被过滤或转义。

论坛发帖时哪些HTML标签通常被允许?
绝大多数公开论坛(如 Discourse、phpBB、SMF 或自建 WordPress 论坛)默认禁用 HTML,只支持简化标记(如 BBCode)或富文本编辑器。直接写 <div>、<code><script></script>、<style></style> 会被过滤或转义成纯文本。能用的 HTML 标签极少,常见仅限:<b></b>、<i></i>、<u></u>、<strike></strike>、<sub></sub>、<sup></sup>、<pre class="brush:php;toolbar:false;"></pre>、<code>、<blockquote></blockquote>、<p></p>、<br> —— 而且往往只在「源码模式」或「HTML 模式」开关开启后才生效。
判断方法很简单:发一条测试帖,输入 <b>加粗</b>,预览或发布后看是否真变粗;如果显示为原样文字,说明 HTML 已被禁用。
怎么确认自己用的论坛支持 HTML?
别猜,直接查设置或文档:
- 进入发帖编辑界面,找「HTML 模式」「源码模式」「切换到代码视图」按钮(常是
图标) - 查看论坛右下角「帮助」「使用指南」或「FAQ」,搜索关键词
HTML、bbcode、allowed tags - 管理员后台若开放了
html_filter或allowed_html配置,说明可自定义白名单 —— 但普通用户无权修改 - 尝试提交含
@@##@@的内容:多数论坛会拦截外部图片或自动转为 BBCode[img],这是 HTML 被限制的明确信号
想插入代码块,<pre class="brush:php;toolbar:false;"></pre> 和 <code> 怎么配合用?
单纯写 <code>print("hello") 只做行内等宽渲染,不保留换行和缩进;要完整展示多行代码,必须嵌套:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
<pre class="brush:php;toolbar:false;"><code class="python">
def hello():
print("hello")
return True
</code>
注意三点:
-
<pre class="brush:php;toolbar:false;"></pre>负责保留空白符与换行,<code>表示语义为计算机代码 —— 少一个都可能错乱 - 很多论坛会剥离
class属性,高亮失效,所以别依赖language-python自动染色,优先靠<pre class="brush:php;toolbar:false;"></pre>基础排版 - 如果论坛用 Markdown 渲染器(如 CommonMark),它可能把
<pre class="brush:php;toolbar:false;"><code></code> 当作原生语法处理,此时直接用三个反引号 ``` 更稳定</pre>
为什么写了 HTML 却没效果?常见拦截原因
不是你写错了,而是服务端或前端主动拦了:
- 提交时被 WYSIWYG 编辑器「净化」:TinyMCE、CKEditor 等默认删掉所有非白名单标签
- 后端用
strip_tags()(PHP)、bleach.clean()(Python)或类似库做过滤,连<span></span>都不放行 - 浏览器扩展(如广告屏蔽插件)误判含
<iframe></iframe>或onerror=的代码为恶意内容,提前阻断提交 - 用了不允许的属性:哪怕
<b></b>被允许,<b style="color:red"></b>中的style也会被删
最稳妥的做法:先关掉所有编辑器插件,切到纯文本/源码模式,用最简标签测试,再逐步加功能。复杂排版需求,本质上已超出论坛能力边界 —— 那就该考虑贴 GitHub Gist 链接或截图了。










