1.在模板中使用php函數
在thinkphp的html中,我們經常會遇到一些變量難以直接從php控制端直接處理,這些變量只有在模板中循環輸出的時候處理比較合適,這個時候,我們就要在模板中使用函數
1.1對輸出模板使用php函數
{$data.name|md5} //把模板中的name變量進行md5加密
把這句話翻譯成php語言:
<?php echo (md5($data['name'])); ?>
1.2函數中多個參數需要調用
1.2.1將前面輸出的變量當后面函數的第二個參數使用
{$create_time|date="y-m-d",###}
解釋:date函數傳入兩個參數,每個參數用逗號分割,這里第一個參數是y-m-d
,第二個參數是前面要輸出的create_time
變量,因為該變量是第二個參數,因此需要用###標識變量位置。
翻譯成php語言:
<?php echo (date("y-m-d",$create_time)); ?>
1.2.2將前面輸出的變量當后面函數的第一個參數使用
{$data.name|substr=0,3}
或者
{$data.name|substr=###,0,3}
翻譯成php語言
<?php echo (substr($data['name'],0,3)); ?>
1.3對一個變量進行多個函數的處理
{$name|md5|strtoupper|substr=0,3}
每個函數之間用丨符號隔開,且函數執行順序是從左往右依次調用
或者:
{:substr(strtoupper(md5($name)),0,3)}
編譯成php語言:
<?php echo (substr(strtoupper(md5($name)),0,3)); ?>
2.變量在模板中輸出使用自定義函數
在項目中,除了一些php函數,我們也可以根據自己項目的實際需求,在項目應用目錄/common/function.php中,寫入自己自定義的函數
重點說明:{ 和 $ 符號之間不能有空格,后面參數的空格就沒有問題;
###表示模板變量本身的參數位置 ;
支持多個函數,函數之間支持空格 ;
支持函數屏蔽功能,在配置文件中可以配置禁止使用的函數列表 ;
支持變量緩存功能,重復變量字串不多次解析。
2.1自定義函數的使用
簡單的自定義函數和使用php函數基本一致。
2.2自定義函數的高級使用
{$varname|function1|function2=arg1,arg2,### }
翻譯成php代碼:
<?php echo (function2(function1(arg1,arg2,$varname)); ?>
2.3案例
我在function.php中寫入一個方法
function Cate($cid){ $Cate=D('Cate'); $Cate=$Cate->where('id='.$cid)->find(); return $Cate['title']; }
在模板中調用這個自定義函數:
{$vo.cid|cate=###}