這篇文章主要介紹了PHP模板引擎Smarty自訂變數調解器用法,較為詳細的分析了smarty變數調節器的用法與自訂變數調節器的實現技巧,需要的朋友可以參考下
在PHP 中,有很多處理文字的函數,您可以把要處理的文字經過函數處理之後,再呼叫Smarty 模板引擎中的assign() 賦值給變量,分配到模板中進行顯示。
Smarty 中的變數調解器和PHP 中處理文字的函數相似,不過語法不相同,在Smarty 中,是透過"|" 後面直接跟調解器函數名,如果有參數,得加在":" 後面,多個參數的話,累加即可。
格式:{$var|modifier1:"參數1":"參數2":參數3|modifier2|modifier3|...}
定義調解器的檔案必須放置在Smarty 中,具體路徑是:libs/plugins/。其檔案名稱,必須按照Smarty 的格式modifier.調解器名稱.php
下面透過一個實例示範Smarty 中,自訂變數調解器的使用
程式思路:做兩個變量調解器,功能是:一個轉換文字;一個截取文字。
init.inc.php(Smarty初始化檔)
template_dir = ROOT_PATH.'/tpl/'; //设置模板文件目录 $_tpl->compile_dir = ROOT_PATH.'./com/'; //设置编译文件目录 $_tpl->left_delimiter = '<{'; //设置左定界符 $_tpl->right_delimiter = '}>'; //设置右定界符 ?>
index.php(主檔案)
assign('str',$_str); //字符串赋值给str $_tpl->assign('str1',strtolower($_str)); //字符串全部转换为小写赋给str1 $_tpl->assign('str2',strtoupper($_str)); //字符串全部转换为大写赋给str2 $_tpl->assign('str3',ucfirst($_str)); //字符串首字母转换为大写赋给str3 $_tpl->assign('str4',substr($_str, 0,15).'...'); //截取字符串前15个字符,后面的用'...'代替,并赋给str4 $_tpl->assign('str5',strtoupper(substr($_str, 0,15)).'...'); //截取字符串前15个字符转换为大写,后面的用'...'代替,并赋给str4 $_tpl->display('index.tpl'); //引入模板 ?>
tpl/index.tpl
Smarty 中的变量调解器 <{$str}>
<{$str1}>
<{$str2}>
<{$str3}>
<{$str4}>
<{$str5}>
<{$str|transform}>
<{$str|transform:"lower"}>
<{$str|transform:"upper"}>
<{$str|transform:"firstdx"}>
<{$str|subString:0:15:"###"}>
<{$str|subString:0:15:"@@@"|transform:"upper"}>
<{$str|transform:"upper"|subString:0:15:"@@@"}>
/libs/plugins/modifier.transform.php(轉換檔案調解器)
lib/plugins/modifier.subString.php(截取文字調解器)
=$end_num) { $_str = substr($string, $start_num, $end_num).$addTo; } else { $_str = substr($string, $start_num, $end_num); } return $_str; } ?>
執行結果:
透過上面的實例,表示調解器檔案必須放在Smarty 的插件目錄plugins 下,並且命名必須遵循Smarty 的規則,這樣,才能呼叫到您所寫的調解器函數。還有一點要說明,定義的函數名稱也必須符合 Smarty 內定的命名規則,例如:smarty_modifier_XXX,並且一個調解器文件,只能放一個函數,不能放置多個。
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
相關推薦:
#
以上是PHP模板引擎Smarty自訂變數調解器的用法及實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!