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