我的知识记录

PbootCMS给内容增加换行标签br=1:模板标签、CSS、二次开发三种实现

PbootCMS输出内容时某些字段需要把换行符转成
标签,下面是三种实现方法。

PbootCMS内容输出机制。模板里{content}输出正文,编辑器换行生成


存在数据库,前台正常显示。自定义字段(简介、备注)输出纯文本,换行符n不解析显示成一行。

方法一,nl2br函数处理。模板用{php}标签执行nl2br: ```html

{php}echo nl2br(htmlspecialchars({sort:beizhu}));{/php}
``` nl2br把n转
,htmlspecialchars防XSS。内容有HTML标签不要用htmlspecialchars会转义标签。

方法二,CSS white-space实现。不改PHP,CSS让浏览器识别换行: ```css .desc { white-space: pre-line; } ``` pre-line合并空白保留换行,n显示成换行。pre-wrap保留所有空白和换行,pre保留空白不自动换行。最简单不需改模板代码。

方法三,自定义标签br=1(二次开发)。给{content}或自定义字段加br参数。改/core/function/模板解析类,内容输出标签处理里判断br参数,有br=1执行nl2br。模板写{content br=1}或{sort:字段 br=1}。需熟悉PbootCMS源码,适合开发者。

方法四,编辑器手动加换行。后台编辑器Enter生成

,Shift+Enter生成
,标签存数据库前台{content}正常显示。最常用不需改代码。

方法五,关闭编辑器HTML过滤。
被XSS过滤清理,检查过滤配置白名单加br标签。config/config.php或/core/function/helper.php的remove_xss允许br。

内容格式化技巧。1. 摘要截取[list:description len=80]截取80字符加省略号。2. 标题截取[list:title len=20]。3. 日期格式化[list:date format='Y-m-d']。4. 内容去HTML{php}echo strip_tags({content});{/php}。5. 内容字数限制{php}echo mb_substr(strip_tags({content}),0,200);{/php}。6. 首行缩进CSS .article-content p { text-indent: 2em; }。7. 段落间距.article-content p { margin-bottom: 15px; line-height: 1.8; }。

自定义字段调用。栏目自定义字段{sort:字段名},内容自定义字段列表页[list:字段名]详情页{content:字段名}。图片字段输出URL需包img标签。多行文本字段需nl2br或CSS white-space处理换行。

常见问题。加nl2br还是不换行:内容换行是rn还是n nl2br都支持,检查CSS white-space:nowrap影响。br标签被过滤:XSS过滤允许br。编辑器换行前台不显示:编辑器生成

,CSS p的margin为0且display:inline看起来没换行,检查CSS。自定义字段输出为空:字段名拼写错或字段没值,检查后台字段管理。

PbootCMS内容格式化以HTML为主,正常用编辑器换行即可。特殊字段需要换行用nl2br或CSS white-space,两种方法简单有效。二次开发加br参数适合高级用户,普通用户用前两种足够。

PbootCMS给内容增加换行标签br=1:模板标签、CSS、二次开发三种实现

标签:

更新时间:2026-08-26 18:04:38

上一篇:PbootCMS附件上传失败报错?从错误码到解决方案的完整对照表

下一篇:如何修改网站后台数据库密码_phpMyAdmin_配置文件_同步更新_注意事项