如何在smarty模板中使用自訂函數

來源:互聯網
上載者:User

在使用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方法,用:表示參數函數的參數。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.