您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程

帝国cms内容页简介调用smalltext标签过滤特殊字符(原创)

原创2025-09-14帝国CMS教程已有人查阅

导读帝国CMS内容页简介smalltext直接输出时,有时会包含一些特殊字符、HTML实体或空格,影响页面美观和SEO。下面为你提供几种过滤方法。

帝国CMS内容页简介[!--smalltext--]直接输出时,有时会包含一些特殊字符、HTML实体或空格,影响页面美观和SEO。如上图,下面为你提供几种过滤方法。

直接修改模板代码

快捷简单,效果不好

如果问题不复杂(比如主要是空格和换行),你可以直接在模板文件中使用简单的字符串替换来清理smalltext字段:

php
<?
$qian = array(" ", " ", "\t", "\n", "\r");
$hou = array("", "", "", "", "");
$smalltext = str_replace($qian, $hou, $navinfor['smalltext']);
echo $smalltext;
?>
  • 优点:代码简单,直接嵌入模板即可。

  • 缺点:功能相对基础,主要处理空白字符。

创建自定义过滤函数

功能强大可以使用

对于更复杂的清理需求(如去除HTML标签、转换HTML实体等),更推荐创建一个自定义函数。将以下代码添加到帝国CMS的/e/class/userfun.php文件中:

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()进行截断。

php
<?
// 在列表模板中,结合 esub 进行截断
$smalltext = esub(strip_tags($r['smalltext']), 120); // 120为要截取的字符长度
echo $smalltext;
?>

// 在内容页模板中直接去除HTML标签
<?
echo strip_tags($navinfor['smalltext']);
?>
  • 优点:简单粗暴去除所有HTML标签。

  • 注意:这也会移除所有有意为之的格式(如加粗、链接等)。

使用 htmlspecialchars 函数转换特殊字符

推荐此方法,转义后可以显示,页面不会乱

如果你希望保留HTML标签本身,但安全地显示其中的特殊字符(防止XSS攻击),可以使用htmlspecialchars()函数。

php
<?
$content = htmlspecialchars($navinfor['smalltext'], ENT_QUOTES, 'UTF-8');
echo $content;
?>
  • 适用场景:需要安全地输出用户输入的内容时。

  • 效果:类似 <div> 会被转换成 &lt;div&gt; 显示在页面上,而不会被浏览器解析为HTML标签。

方法对比与选择

方法 主要用途 优点 缺点
直接替换 快速去除空白字符 简单直接 功能有限
自定义函数 综合过滤特殊字符、实体和空白 功能,可定制性强 需修改系统文件
strip_tags() 彻底去除HTML标签 代码简洁 移除所有格式
htmlspecialchars() 转义特殊字符,防止XSS 安全性高 代码会以文本形式显示

你可以根据实际需求选择最合适的方法。通常来说,使用自定义函数(方法二)最为通用和强大。

注意事项

  • 备份习惯:在修改/e/class/userfun.php等系统文件前,务必进行备份

  • 编码一致性:确保你的文件编码(如UTF-8)与函数中处理的字符编码一致,避免乱码。

  • 测试:修改后,务必在不同页面(内容页、列表页)检查输出效果。

  • 选择性过滤:并非所有场景都需要彻底过滤。如果简介中允许一些简单格式(如加粗),过度过滤反而会失去效果。

本文标签:帝国cms标签 帝国cms相关调用 

很赞哦! ()

相关源码

  • 深蓝色风景摄影机构网站(自适应多端)pbootcms模板该模板基于PbootCMS内核开发,专为风景摄影机构、户外摄影企业设计,采用深蓝色主题传递专业与艺术感,全栈响应式架构确保PC、平板、手机端无缝适配PHP程序结合轻量级SQLite数据库也可以更换MySQL数据库查看源码
  • (自适应)工业机械设备产品介绍免费pbootcms源码下载本网站模板基于PbootCMS内核精心开发,为机械设备与工业产品制造企业量身打造。设计充分考量行业特性,突出产品展示与技术实力呈现查看源码
  • (自适应响应式)HTML5电脑手机电子数码产品配件pbootcms模板下载本模板为电脑配件、手机配件及数码周边产品企业设计,基于PbootCMS内核开发。采用现代化响应式布局,适配各类移动设备,能够专业展示各类电子产品配件参数、应用场景和技术特点。模板内置多种产品展示模块,满足不同类型配件企业的展示需求。查看源码
  • (PC+WAP)房屋建造建筑工程房地产建材行pbootcms网站模板下载本模板基于PbootCMS内核开发,为房屋建造、建筑工程及房地产建材类企业设计。通过本模板可快速搭建具有行业特色的企业官网,只需替换文字与图片内容即可适配其他行业使用。查看源码
  • (自适应)大气壁挂炉暖气设备家用电器模板带加盟申请和下载资料为壁挂炉、暖气片等供暖设备企业设计的PbootCMS模板,通过响应式技术实现跨终端展示产品参数和技术细节。后台统一管理确保采暖系统数据、服务网点信息实时同步更新查看源码
  • (PC+WAP)绣花刺绣传统手工工艺pbootcms网站源码下载这款基于PbootCMS的网站模板为刺绣和传统手工艺行业设计,采用优雅的布局和精致的细节处理,能够呈现手工艺品的独特韵味和文化内涵。模板结构合理,功能完善,是手工艺从业者展示作品的理想选择。查看源码
分享笔记 (共有 篇笔记)
验证码: