上一篇文章讲解“模型-变量输出”,本篇文章讲解“模板-使用函数”。
需要对模板输出使用函数进行过滤或其它处理的时候,可以使用:
1. 模板中函数的基本使用
①新建index控制器,并新建index方法
②在index.html模板中输出$name,并用md5进行加密
预览:
注意:1. 可以使用空格,例如下面的写法是一样的:{$name | md5}2. 为了避免出现xss安全问题,默认的变量输出都会使用htmlentities方法进行转义输出。{$name|md5}编译后的为htmlentities方法是系统默认添加的(无需手动指定)。
2. 设置默认过滤方法
用户从表单提交的信息,有时会包含标签,或恶意的js操作等。为了避免,可以设置默认过滤方法。
在配置文件template.php中设置'default_filter' =>'htmlspecialchars',就会默认使用htmlspecialchars方法过滤输出。
①在index控制器中,新建htmlfilter方法
②在index.html模板中输出
预览:
如果你不需要转义(例如你需要输出html表格等内容),可以使用:
预览:
3. 系统内置的过滤规则
系统内置了下面几个固定的过滤规则(不区分大小写)
1)基本使用
①在index控制器中,新建sysfilter方法
②在index.html模板中输出数据
预览:
2)函数有多个参数
如果函数有多个参数需要调用,可以使用:
①在index控制器中,新建paramfilter方法
②在index.html模板中输出,并进行截取
预览:
3)多个函数过滤
还可以支持多个函数过滤,多个函数之间用“|”分割即可,例如:
①在index控制器中,新建morefilter方法
②在index.html模板中输出,并用多个函数过滤
预览:
注意:1. 当多个函数过滤时,函数会按照从左到右的顺序依次调用(系统默认的过滤规则会在最后调用)。2. 变量输出使用的函数可以支持内置的php函数或者用户自定义函数,甚至是静态方法。
如果觉得{$data|md5|upper|substr=0,3}比较麻烦,不好理解,可以使用一下方法:
预览:
注意:1. 使用该方法输出的值不会使用默认的过滤方法进行转义。编译后的文件位置:runtime/temp/(不确定是哪个编译文件,可以把文件夹清空,再运行)
thinkphp5连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“模板-运算符”