PbootCMS给内容增加换行标签br=1的实现与内容格式化技巧
PbootCMS输出内容时,某些字段需要把换行符转成
标签,或自定义内容格式化。下面是实现方法和内容格式化技巧。
PbootCMS内容输出机制。模板里{content}输出文章正文,编辑器里的换行和段落会生成
和
标签存在数据库,前台正常显示。但自定义字段(如简介、备注)输出时是纯文本,换行符n不会被解析,显示成一行。
方法一,nl2br函数处理。PbootCMS模板支持PHP,用{php}标签执行nl2br: ```html
,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过滤。如果
标签被PbootCMS的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参数适合高级用户,普通用户用前两种方法足够。

更新时间:2026-08-26 18:12:26
上一篇:要在PBOOTCMS中新增并开启手机端模板_模板文件_配置_测试_完整步骤