W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Smarty可使用string:
或 eval:
的資源類型, 來(lái)從一個(gè)字符串中獲得模板內(nèi)容。
string:
資源看起來(lái)和文件模板差不多。 字符串資源將被編譯并存儲(chǔ)成編譯代碼文件,以供重用。 每個(gè)獨(dú)立的模板字符串將創(chuàng)建一個(gè)新的編譯文件。 如果你的模板字符串被經(jīng)常存取,這是一個(gè)好的選擇。 如果你的模板字符串經(jīng)常被修改(或者字符串很少機(jī)會(huì)被重用), 那么使用eval:
是一個(gè)更好的選擇, 因?yàn)樗粫?huì)保存編譯文件到磁盤。
eval:
資源在每次頁(yè)面渲染的時(shí)候都會(huì)運(yùn)行。 當(dāng)字符串不常重用的情況下,這是一個(gè)好的選擇。 如果同樣的字符串經(jīng)常被存取,那么string:
會(huì)是一個(gè)更好的選擇。
使用string:
的資源,每個(gè)字符串都會(huì)生成一個(gè)編譯文件。 Smarty無(wú)法檢查一個(gè)字符串是否已修改,所以只能為每個(gè)獨(dú)立的字符串都生成一個(gè)新的編譯文件。 選擇一個(gè)好的資源類型是很重要的,可避免你的磁盤塞滿浪費(fèi)的編譯文件。
Example 16.5. 使用字符串資源
<?php $smarty->assign('foo','value'); $template_string = 'display {$foo} here'; $smarty->display('string:'.$template_string); // 下次使用時(shí)編譯 $smarty->display('eval:'.$template_string); // 每次都編譯 ?>
在模板內(nèi)使用
{include file="string:$template_string"} {* 下次使用時(shí)編譯 *} {include file="eval:$template_string"} {* 每次都編譯 *}
string:
和 eval:
的資源都可以通過(guò) urlencode()
或 base64_encode()
來(lái)進(jìn)行編碼。 通常情況下編碼是不需要的,但當(dāng)和擴(kuò)展模板資源
一起使用的時(shí)候,那么就需要進(jìn)行編碼了。
Example 16.6. 使用編碼后的字符串資源
<?php $smarty->assign('foo','value'); $template_string_urlencode = urlencode('display {$foo} here'); $template_string_base64 = base64_encode('display {$foo} here'); $smarty->display('eval:urlencode:'.$template_string_urlencode); // 將通過(guò) urldecode() 解碼 $smarty->display('eval:base64:'.$template_string_base64); // 將通過(guò) base64_decode() 解碼 ?>
在模板內(nèi)使用
{include file="string:urlencode:$template_string_urlencode"} {* 將通過(guò) urldecode() 解碼 *} {include file="eval:base64:$template_string_base64"} {* 將通過(guò) base64_decode() 解碼 *}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: