在模板中,当开发者需要对变量使用函数时,可以这样用:
{$data.name|md5}
编译后的结果是:
<?php echo htmlentities(md5($data['name'])); ?>
其中htmlentities
方法是系统默认添加的(无需手动指定。)
如果你不需要转义(例如你需要输出html表格等内容),可以使用raw
关键字:
{$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.email|substr=0,15}
编译后的结果是:
<?php echo htmlentities(substr($data['email'],0,15)); ?>
还支持多函数同时使用,多个函数之间用|
符号分隔,例如:
{$data.name|md5|sha1|substr=5,10}
编译后的结果是:
<?php echo htmlentities(substr(sha1(md5($data,name)),5,10)); ?>
多函数的调用顺序时从左到右依次执行的,而系统附加的过滤规则会在最后加上。
如果你觉得这样的调用顺序不好记忆,或者不想调用系统的过滤规则,也可以这样写:
{:substr(sha1(md5($data.name)),5,10)}
编译后的结果就是:
<?php echo substr(sha1(md5($data,name)),5,10); ?>