過濾器能夠在模板進入smarty編譯模板前設置模板的內容,好比註釋,
這些可有可無的內容 咱們不須要它們,所以能夠在進入模板以前將其過濾php
registerFilter('pre','');html
<?php require "./mySmarty.cla -->ss.php"; $smarty = new mySmarty(); //定義一個前置過濾器函數 function prevadd($tplName){ $reg ="/<!--.*-->/"; return preg_replace($reg,'',$tplName); } $smarty ->registerFilter("pre","prevadd");
registerFilter('post','');緩存
<?php //定義一個後置過濾器 function poster($tplname){ return "<---author:smarty zheng--->".$tplname; } $smarty ->registerFilter("post","poster");
registerFilter('output','');
函數
<?php //定義輸出過濾器 function outmessage($tplname){ echo "13232<br/>"; return str_replace("過濾器工具","tool",$tplname); } $smarty ->caching = 1; $smarty ->registerFilter("output","outmessage"); $smarty ->assign('name','prvfileter'); $smarty->clearCompiledTemplate('filter.html');//清除編譯目錄下的編譯文件或者指定條件的編譯文件。 $smarty ->display("filter.html");
對於輸出過濾器來講,輸出過濾器在整個smarty的執行流程過程當中.是在編譯文件生成以後,因此輸出過濾器的內容不會出如今view_c編譯好的目錄文件中,可是若是caching=1 那麼輸出過濾器的內容會保存到cache目錄緩存目錄中去工具
利用smarty的過濾功能能夠爲模板作統一的設置,能夠將方法定義在父類控制器中。例如將全部的模板中的註釋去除掉.
post