正在加载文档...
模板调节器
一、基础语法
<!--{$变量名|调节器名:参数1:参数2...}-->
- 以
$开头表示变量标签 - 支持链式调用多个调节器(从左到右顺序执行)
- 参数支持字符串/数字/PHP函数返回值
二、调节器分类说明
1. 数据输出处理
| 调节器 | 说明 | 示例 |
|---|---|---|
| print_r | 打印数据结构 | <!--{$site\|print_r}--> |
| default | 空值默认替换 | <!--{$title\|default:"暂无"}-> |
| assign | 赋值到新变量 | <!--{123\|assign:'num'}--> |
2. 字符串处理
| 调节器 | 参数说明 | 示例 |
|---|---|---|
| upper | 转大写 | <!--{$title\|upper}--> |
| lower | 转小写 | <!--{$title\|lower}--> |
| cut | 截断长度:结束符 | <!--{$desc\|cut:50:'...'}--> |
| cnlen | 计算中文字数 | <!--{$content\|cnlen}--> |
| replace | 查找内容:替换内容 | <!--{$text\|replace:'旧':'新'}--> |
| strpos | 查找字符串位置(PHP函数) | <!--{if 'abc'\|strpos:'b'}--> |
3. 时间处理
<!--{$timestamp|date:'Y-m-d H:i:s'}-->
<!--{$iCMS.NOW|date:'m/d/Y'}-->
支持所有PHP date()格式参数
4. 内容安全处理
| 调节器 | 说明 | 示例 |
|---|---|---|
| html2text | 去除HTML标签 | <!--{$content\|html2text}--> |
| htmlcut | 安全截取HTML内容 | <!--{$content\|htmlcut:100}--> |
5. 图像处理
<!--{$pic.url|thumb:宽度:高度}-->
<!--{$pic.url|thumb:300:200}-->
6. 其他功能
| 调节器 | 说明 | 示例 |
|---|---|---|
| rand | 生成随机数(最小值:最大值) | <!--{'1'\|rand:10}--> |
| count | 统计数组元素(PHP函数) | <!--{$pics\|count}--> |
三、高级用法
1. 链式调用
<!-- 先清除HTML标签,再截取50字符 -->
<!--{$content|html2text|cut:50}-->
<!-- 生成随机数并赋值 -->
<!--{'1'|rand:100|assign:'random'}-->
当前随机数:<!--{$random}-->
2. 结合逻辑判断
<!--{if $desc|cnlen > 100}-->
内容过长,已截断显示:<!--{$desc|cut:100}-->
<!--{/if}-->
3. 使用PHP函数
<!-- 使用md5加密 -->
<!--{$password|md5}-->
<!-- 转换JSON格式 -->
<!--{$data|json_encode}-->
四、注意事项
-
参数规范
- 字符串参数推荐使用单引号包裹
- 数值参数直接填写
- 多参数使用英文冒号分隔
-
特殊转义
<!-- 需要输出冒号时使用双引号 --> <!--{$text|replace:'old':'new'}-->
<!-- 参数包含空格时需引号包裹 -->
<!--{$addr|replace:'Road':'Rd'}-->
3. **变量作用域**
- 通过`assign`创建的变量在整个模板有效
- 建议变量名使用小写字母+下划线组合
4. **性能建议**
- 避免在循环中执行复杂操作
- 优先使用内置调节器替代PHP函数
## 五、调试技巧
1. 查看原始数据
```html
<!--{$data|print_r}-->
- 类型检查
<!-- 检查变量类型 --> 变量类型:<!--{$data|gettype}-->
<!-- 检查是否数组 -->
<!--{if $data|is_array}-->
3. 开发模式日志
```html
<!-- 输出执行日志 -->
<!--{$data|var_dump}-->