模版标签中使用PHP函数

实例:

为了测试效果,请先录入两篇文章,题目分别是:

《hello,world》和《abcdefg》

现在我们要把两个题目调用出来,最基础的用法对吧?

<{getitems template="[title]<br />"}>

接下来稍微复杂一点点:要求把调用出来的题目中的字母全部大写,这个需求很简单,过滤器就能搞定,参见:http://jimifan.com/manual/template-tag-filter.htm

但有时候过滤器还稍显麻烦了一点点,毕竟还得去创建过滤器,而字母大写有一个PHP函数可以直接搞定,怎么能直接让strtoupper这个函数将title做一下处理呢?

就在title的后面加一个@,然后跟上PHP的函数名,比如在这个例子中就是strtoupper,改好之后是这样的:

<{getitems template="[title@strtoupper]<br />"}>

为了醒目起见我在增加一个md5函数的调用,再把模版内容再完整的列出来一次:

<{getitems template="[title]<br />"}>
<{getitems template="[title@strtoupper]<br />"}>
<{getitems template="[title@md5]<br />"}>

显示出来的内容也列出来:

abcdefg
hello,world
ABCDEFG
HELLO,WORLD
7ac66c0f148de9519b8bd264312c4d64
3cb95cfbe1035bce8c448fcaf80fe7d9

但是调用PHP函数有一个限制,只支持一个参数的函数,比如上例中的都是一个函数的。像截取前20个字符这种的需求还得用过滤器功能,关于过滤器的介绍请参考以下资料:

模版中使用过滤器
过滤器
过滤器实例
过滤器支持数组具体实例