DedeCMS 常用函数大揭秘!学会这 8 个函数模板制作效率翻倍

宝子们!做 DedeCMS 模板时,灵活运用系统自带函数能让开发效率起飞!今天一次性盘点 8 个超实用函数,从字符串处理到时间转换,再到安全过滤,全是新手必学的干货,收藏这篇直接搞定 90% 的模板函数需求~

一、文本处理神器:中文截取、HTML 转换全搞定

✂️cn_substr:精准截取中文字符串

功能:按字节截取中文字符串,避免标题 / 简介过长乱码
参数

  • $str:需要截取的字符串(必填)
  • $slen:截取长度(单字节模式,1 个中文占 2 字节!)
  • $startdd:开始位置(默认 0,从头开始)
    返回值:截取后的字符串,错误返回空
    范例:截取标题前 5 个中文字符(占 10 字节)

markdown

  1. {field:title function='cn_substr(@me, 10)'/}
  2. <!-- 输出:"DedeCMS常用函..."(超过自动截断) -->

💡注意:新手常踩坑!中文按 2 字节算,英文 / 符号按 1 字节算,计算长度时别搞错~

🧼Html2Text:HTML 代码转纯文本

功能:剥离 HTML 标签,提取纯净文本(防乱码神器)
参数

  • $str:需要转换的 HTML 代码
  • $r:是否反斜线引用(0 = 直接返回,1 = 引用)
    使用场景:页面 meta 标签的 description 需要纯文本,直接用它格式化!

markdown

  1. {field:description function='Html2Text(@me)'/}
  2. <!-- 自动去掉<p>、<br>等标签,只剩文字内容 -->

📄Text2Html:纯文本转 HTML 格式

功能:把用户输入的纯文本转为可显示的 HTML 代码
等价 PHP 函数htmlspecialchars_decode
范例:显示带换行的用户评论
markdown

  1. {field:body function='Text2Html(@me)'/}
  2. <!-- 自动将\n转为<br>,保留空格和特殊符号 -->

二、时间处理大师:从时间戳到格式化日期

📅MyDate:时间戳转任意日期格式

功能:把 Unix 时间戳(如 1620000000)转为指定格式的日期
参数

  • $format:目标格式(默认Y-m-d H:i:s
  • $timest:时间基准(默认 0,取当前时间)
    format 字符表(超详细!):
    | 字符 | 说明 | 例子 |
    | ——— | ——————- | ————————————- |
    |d | 带前导零的日期 | 01-31 |
    |F | 完整月份名称 | January |
    |Y | 4 位年份 | 2023 |
    |H:i | 24 小时制时间 | 15:30 |
    |c | ISO 8601 标准格式 | 2023-07-01T12:00:00+00:00 |
    范例:显示 “2023-07-01” 格式

markdown

  1. {field:pubdate function='MyDate("Y-m-d", @me)'/}

GetDateTimeMk:固定格式快速转换

功能:直接返回Y-m-d H:i:s格式时间(比 MyDate 更简单)
范例:显示文章发布时间
markdown

  1. {field:senddate function='GetDateTimeMk(@me)'/}
  2. <!-- 输出:2023-07-01 14:30:00 -->

FloorTime:智能显示 “刚刚”“1 小时前”

功能:把时间戳转为 “距离现在” 的友好格式
范例:显示 “3 分钟前”“昨天 15:00”
markdown

  1. {field:senddate function='FloorTime(@me)'/}
  2. <!-- 自动根据时间差显示最近时间,提升用户体验! -->

三、安全与过滤:清理内容 & 防恶意代码

🛠️HtmlReplace:去除不规则 HTML 字符

功能:清理 HTML 中的垃圾代码,支持 3 种模式:

  • $rptype=0:仅替换 HTML 标记
  • $rptype=1:替换标记 + 去除连续空白
  • $rptype=2:替换标记 + 去除所有空白
    范例:深度清理简介内容(模式 2)

markdown

  1. {dede:field.description function="HtmlReplace(@me, 2)"/}
  2. <!-- 去掉所有标签和空格,只剩紧凑文字 -->

⚠️RemoveXSS:过滤恶意脚本

功能:检测并删除 XSS 攻击代码(防注入必备!)
使用场景:用户输入的关键词、评论等危险内容
markdown

  1. {field:keywords function='RemoveXSS(@me)'/}
  2. <!-- 自动屏蔽<script>、<iframe>等恶意标签 -->

四、新手避坑指南

  • 中文截取长度计算cn_substr中 “5 个中文”=10 字节,别直接写 5!
  • 时间格式符号MyDateY是 4 位年,y是 2 位(如 2023→23),别搞混~
  • 安全函数必加:用户输入内容(如评论、关键词)一定要用RemoveXSS过滤,防止网站被黑!

五、总结:函数搭配使用更高效

需求场景 推荐函数组合 代码范例
标题截断 + 防乱码 cn_substr+Html2Text {field:title function='Html2Text(cn_substr(@me, 20))'/}
时间显示 + 友好化 MyDate+FloorTime 列表页用MyDate,详情页用FloorTime
内容清理 + 安全 HtmlReplace+RemoveXSS {field:body function='RemoveXSS(HtmlReplace(@me, 1))'/}

宝子们!掌握这 8 个函数,DedeCMS 模板制作直接开挂~ 从文本处理到时间转换,再到安全防护,每个都是实战必备技能!赶紧收藏起来,做模板时遇到问题随时翻出来查~ 还有哪些函数想了解?评论区留言,下期安排!