使用函数

在模板中,当开发者需要对变量使用函数时,可以这样用:

{$data.name|md5}

编译后的结果是:

<?php echo htmlentities(md5($data['name'])); ?>

其中htmlentities方法是系统默认添加的(无需手动指定。)
如果你不需要转义(例如你需要输出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.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)}