需要对模板输出使用函数进行过滤或其它处理的时候,可以使用:
~~~
{$data.name|md5}
~~~
可以使用空格,例如下面的写法是一样的:
~~~
{$data.name | md5}
~~~
编译后的结果是:
~~~
<?php echo htmlentities(md5($data['name'])); ?>
~~~
其中`htmlentities`方法是系统默认添加的(无需手动指定。
> 为了避免出现XSS安全问题,默认的变量输出都会使用`htmlentities`方法进行转义输出。
你还可以设置默认的过滤方法,在配置文件`cmspro/plugin/depin.template/src/Template.php`中设置
~~~
'default_filter' => 'htmlspecialchars'
~~~
就会默认使用`htmlspecialchars`方法过滤输出。
如果你不需要转义(例如你需要输出html表格等内容),可以使用:
~~~
{$data.name|raw}
~~~
编译后的结果是:
~~~
<?php echo $data['name']; ?>
~~~
系统内置了下面几个固定的过滤规则(不区分大小写)
| 过滤方法 | 描述 |
| --- | --- |
| date | 日期格式化(支持各种时间类型) |
| format | 字符串格式化 |
| upper | 转换为大写 |
| lower | 转换为小写 |
| first | 输出数组的第一个元素 |
| last | 输出数组的最后一个元素 |
| default | 默认值 |
| raw | 不使用(默认)转义 |
例如
~~~
{$data.create_time|date='Y-m-d H:i'}
{$data.number|format='%02d'}
~~~
如果函数有多个参数需要调用,可以使用
~~~
{$data.name|substr=0,3}
~~~
表示输出
~~~
<?php echo htmlentities(substr($data['name'],0,3)); ?>
~~~
还可以支持多个函数过滤,多个函数之间用“|”分割即可,例如:
~~~
{$name|md5|upper|substr=0,3}
~~~
编译后的结果是:
~~~
<?php echo htmlentities(substr(strtoupper(md5($name)),0,3)); ?>
~~~
函数会按照从左到右的顺序依次调用(系统默认的过滤规则会在最后调用)。
> 变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。
如果你觉得这样写起来比较麻烦,也可以直接这样写:
~~~
{:substr(strtoupper(md5($name)),0,3)}
~~~
- 关于CMSPRO
- 安装使用
- 首次使用
- 功能使用
- 系统后台
- 系统
- 系统配置
- 开发使用
- 基础学习
- php如何修改文件创建时间
- 类方法
- 系统框架
- 系统入口框架
- URL处理
- 自动附加封装类、函数入口
- 内置应用
- GET与POST
- 字符控制
- 多语言使用
- 数据库使用
- 页面跳转
- 数组控制
- 时间相关
- 文件操作
- 获取系统设置的应用目录
- IP获取与解析
- 数据分页
- 内置插件
- 短信发送
- 信息模板
- 消息操作
- 消息操作(旧)
- 资金操作
- 优惠券
- 积分操作
- 服务器接口
- 宝塔接口
- 域名接口
- 西部数据
- whois查询
- 事件管理器
- 规则管理器
- 电子邮件
- 常用代码
- 数据获取与分页
- 模型自动构建表单
- 排版布局
- 常用样式
- 编辑表单
- tab选项卡
- JS相关
- 插件
- 钩子
- 高级进阶
- 消息和模板组合使用
- API接口
- 充值支付
- 积分充值兑换
- 短信验证码
- 邮箱验证码
- 微信消息模板
- 获取货币信息
- 获取积分信息
- 商品操作
- 信息反馈
- LayIM相关
- 自定义一级URL
- 自定义功能
- 用户中心
- 网站管理
- 模板引擎v2
- 基础学习
- 变量输出
- 使用函数
- 运算符
- 原样输出
- 模板注释
- 模板继承
- 包含文件
- 内置标签
- 循环标签
- 比较标签
- 条件判断
- 资源文件加载
- 标签嵌套
- 原生PHP
- 定义标签
- 功能应用
- 站点统计
- 数据列表
- 单条数据
- 功能动作
- 账户资金
- 账户积分
- 网站导航
- 从零使用
- 结构了解
- 基础工作
- 模板引擎v1
- 模板标签
- 导航菜单
- 获取数据列表
- 获取单条数据
- 广告以及连接
- if判断
- 判断是否登录
- 判断系统变量
- 自定义判断
- 常规判断
- 模板表单
- 高级使用
- 前后分离v1
- 通用
- 支付
- 积分
- 论坛
- 下载
- 微信
- 云服务SDK开发
- 通用请求