您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程
帝国cms内容页简介调用smalltext标签过滤特殊字符(原创)
原创2025-09-14帝国CMS教程已有人查阅
导读帝国CMS内容页简介smalltext直接输出时,有时会包含一些特殊字符、HTML实体或空格,影响页面美观和SEO。下面为你提供几种过滤方法。

帝国CMS内容页简介[!--smalltext--]直接输出时,有时会包含一些特殊字符、HTML实体或空格,影响页面美观和SEO。如上图,下面为你提供几种过滤方法。
直接修改模板代码
快捷简单,效果不好
如果问题不复杂(比如主要是空格和换行),你可以直接在模板文件中使用简单的字符串替换来清理smalltext字段:
<?
$qian = array(" ", " ", "\t", "\n", "\r");
$hou = array("", "", "", "", "");
$smalltext = str_replace($qian, $hou, $navinfor['smalltext']);
echo $smalltext;
?>
-
优点:代码简单,直接嵌入模板即可。
-
缺点:功能相对基础,主要处理空白字符。
创建自定义过滤函数
功能强大可以使用
对于更复杂的清理需求(如去除HTML标签、转换HTML实体等),更推荐创建一个自定义函数。将以下代码添加到帝国CMS的/e/class/userfun.php文件中:
function Cmsdx_format_html($str){
$str = trim($str); // 移除首尾空格
// 替换常见的HTML实体
$str = str_replace('&', '', $str);
$str = str_replace('ldquo;', '“', $str);
$str = str_replace('rdquo;', '”', $str);
$str = str_replace('middot;', '·', $str);
$str = str_replace('lsquo;', '‘', $str);
$str = str_replace('rsquo;', '’', $str);
$str = str_replace('hellip;', '…', $str);
$str = str_replace('mdash;', '—', $str);
$str = str_replace('ensp;', '', $str);
$str = str_replace('emsp;', '', $str);
$str = str_replace('nbsp;', '', $str);
// 替换各种空白字符
$str = str_replace(' ', '', $str);
$str = str_replace('\t', '', $str);
$str = str_replace('\r\n', '', $str);
$str = str_replace('\r', '', $str);
$str = str_replace('\n', '', $str);
$str = str_replace(' ', '', $str);
// 使用正则表达式进一步处理多余空格
$str = preg_replace('/\s(?=\s)/', '', $str); // 去掉连续的空格
$str = preg_replace('/[\n\r\t]/', ' ', $str); // 将换行符、制表符等替换为一个空格
return trim($str);
}
在内容页模板中,你需要调用简介字段的地方,使用如下代码:
php
<?=Cmsdx_format_html($navinfor['smalltext'])?>
在列表页模板中,调用方式通常类似:
php
<?=Cmsdx_format_html($r['smalltext'])?>
使用内置函数 strip_tags
简单快捷有效,代码号实测,就是去掉所有标签有点难看
如果你的主要目的是去除简介中的所有HTML标签,可以使用PHP内置的strip_tags()函数,有时结合系统函数esub()进行截断。
<?
// 在列表模板中,结合 esub 进行截断
$smalltext = esub(strip_tags($r['smalltext']), 120); // 120为要截取的字符长度
echo $smalltext;
?>
// 在内容页模板中直接去除HTML标签
<?
echo strip_tags($navinfor['smalltext']);
?>
-
优点:简单粗暴去除所有HTML标签。
-
注意:这也会移除所有有意为之的格式(如加粗、链接等)。
使用 htmlspecialchars 函数转换特殊字符
推荐此方法,转义后可以显示,页面不会乱
如果你希望保留HTML标签本身,但安全地显示其中的特殊字符(防止XSS攻击),可以使用htmlspecialchars()函数。
<?
$content = htmlspecialchars($navinfor['smalltext'], ENT_QUOTES, 'UTF-8');
echo $content;
?>
-
适用场景:需要安全地输出用户输入的内容时。
-
效果:类似
<div>会被转换成<div>显示在页面上,而不会被浏览器解析为HTML标签。
方法对比与选择
| 方法 | 主要用途 | 优点 | 缺点 |
|---|---|---|---|
| 直接替换 | 快速去除空白字符 | 简单直接 | 功能有限 |
| 自定义函数 | 综合过滤特殊字符、实体和空白 | 功能,可定制性强 | 需修改系统文件 |
| strip_tags() | 彻底去除HTML标签 | 代码简洁 | 移除所有格式 |
| htmlspecialchars() | 转义特殊字符,防止XSS | 安全性高 | 代码会以文本形式显示 |
你可以根据实际需求选择最合适的方法。通常来说,使用自定义函数(方法二)最为通用和强大。
注意事项
-
备份习惯:在修改
/e/class/userfun.php等系统文件前,务必进行备份。 -
编码一致性:确保你的文件编码(如UTF-8)与函数中处理的字符编码一致,避免乱码。
-
测试:修改后,务必在不同页面(内容页、列表页)检查输出效果。
-
选择性过滤:并非所有场景都需要彻底过滤。如果简介中允许一些简单格式(如加粗),过度过滤反而会失去效果。
很赞哦! ()
相关教程
图文教程
帝国CMS灵动标签SQL怎么调用指定类型的广告方法
帝国CMS灵动标签SQL调用指定类型的最新广告(不实用,不如js灵活,适合有特殊需求的帝国CMS模板开发者)
帝国tag按分类调用的方法
帝国CMS按分类调tags代码,httpd.ini伪静态规则RewriteRule ^/tag_([0-9]+)_([0-9]+).html$ /e/tags/index.php?tagid=$1&page=$2
帝国CMS会员SQL批量修改会员组的语句
帝国CMS后台默认会员操作功能是没有批量修改会员的会员组功能的,只能批量审核和取消,如果想批量修改会员的会员组只能自己想办法了。
帝国CMS二次开发列表页新闻和简介怎么清除自动换行符
列表内容模板(list.var) (*) 使用程序代码,判断smalltext字段中是否含有换行符,含有去掉不含有直接输出。
相关源码
-
(PC+WAP)货运物流快递仓储货架pbootcms网站模板下载本模板基于PbootCMS开发,为货运物流、快递配送、仓储货架等行业设计,支持PC+WAP自适应,确保在电脑、手机、平板等设备上均能流畅访问。适用于物流公司、仓储企业查看源码 -
(自适应响应式)蓝色环保机械设备网站pbootcms模板HTML5源码下载基于PbootCMS的生态环境技术展示平台,通过内容调整可应用于新能源设备、污水处理、空气净化等环保相关领域。设备参数采用对比表格展示,技术原理支持图文混排;查看源码 -
(自适应响应式)绿色环保防腐木材轻钢别墅建材pbootcms模板下载本模板为环保防腐木材、轻钢别墅建材类企业设计开发,基于PbootCMS内核构建,充分考虑了建材行业的展示需求与产品特点。模板设计风格自然环保,布局清晰合理,呈现建材产品特性与专业优势,帮助访客直观了解产品特点并建立信任感。查看源码 -
(PC+WAP)绿色草坪地坪操场pbootcms网站模板该模板基于PbootCMS内核开发,专为人造草坪、地坪施工企业设计,采用绿色主题呼应行业属性,实现PC与WAP端全栈响应式适配,确保跨设备无缝浏览体验。查看源码 -
(自适应)变压器电子元器件电器配件pbootcms网站模板源码为电子元器件企业打造的响应式网站模板,基于PbootCMS内核开发,助力企业快速构建专业级线上展示平台。支持页面独立设置标题、关键词和描述,内置SEO友好结构。PHP程序确保运行安全稳定,有助于提升搜索引擎收录效果。查看源码 -
(自适应)大型农业机械设备水稻玉米收割机网站pbootcms源码下载本模板基于PbootCMS内核开发,为农业机械设备制造与销售企业设计,特别适合水稻玉米收割机、拖拉机、播种机等农用机械展示。模板充分考虑了农机行业的特性,从产品展示到技术参数,从作业案例到售后服务查看源码
| 分享笔记 (共有 篇笔记) |

