在使用PHP的smarty模板引擎的時候,有時候需要調用一些開發人員自訂的功能,比如一個encode函數。而在smarty中沒有內嵌的該函數,於是很自然,需要在PHP代碼中先構建該函數,然後通過在template檔案夾中的模板中調用該函數。方法如下:
比如在foo.php中設計了一個函數
/**<br />*foo.php檔案產生了一個sub函數,通過smarty模板調用該函數。<br />*/<br /><?php<br /> $s = new smarty();<br /> function sub($a,$b){<br /> return $a+$b;<br /> }<br /> $s->assign("foo","foo.html");<br />?>
通過上面的assign賦值,就可以在foo.html檔案中顯示對應的頁面了。
<!--上面的PHP檔案通過$s->display()能夠讓下面的html檔案產生相應的變數:<br /><html><br />...<br /><{if $browserType=="IE"}><br /><td align="center"><br /><a target="_blank" href="http://pharma.dxy.cn/info/productsearch.htm?keyword=<{$result[a].drugName|keywordsEncode:$result[a].drugName}><br />&field=1&order=0&limit=10&infoType=6&category=&releaseDate=0&agencyName=&area=&code="><{$result[a].drugName}></a><br /></td><br /><{else}><br /><td align="center"><br /><a target="_blank" href="http://pharma.dxy.cn/info/productsearch.htm?keyword=<{$result[a].drugName|subString:$result[a].drugName}><br />&field=1&order=0&limit=10&infoType=6&category=&releaseDate=0&agencyName=&area=&code="><{$result[a].drugName}></a><br /></td><br /><{/if}><br /></html>
上面代碼的
<{$result[a].drugName|keywordsEncode:$result[a].drugName}>的意思就是表示:
用|表示調用PHP檔案中的keywordsEncode方法,用:表示參數函數的參數。