Smarty�使用string: 或 eval:的资�类型,
æ�¥ä»Žä¸€ä¸ªå—符串ä¸èŽ·å¾—æ¨¡æ�¿å†…容。
string:资æº�看起æ�¥å’Œæ–‡ä»¶æ¨¡æ�¿å·®ä¸�多。 å—符串资æº�将被编译并å˜å‚¨æˆ�编译代ç �文件,以供é‡�用。 æ¯�个独立的模æ�¿å—符串将创建一个新的编译文件。 å¦‚æžœä½ çš„æ¨¡æ�¿å—符串被ç»�常å˜å�–,这是一个好的选择。 å¦‚æžœä½ çš„æ¨¡æ�¿å—符串ç»�常被修改(或者å—符串很少机会被é‡�用), 那么使用eval:是一个更好的选择, å› ä¸ºå®ƒä¸�会ä¿�å˜ç¼–译文件到ç£�盘。eval:资æº�在æ¯�次页é�¢æ¸²æŸ“的时候都会è¿�行。 当å—符串ä¸�常é‡�用的情况下,这是一个好的选择。 如果å�Œæ ·çš„å—符串ç»�常被å˜å�–,那么string:会是一个更好的选择。
Note
使用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); // �次都编译
?>
在模�内使用
{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() è§£ç �
?>
在模�内使用
{include file="string:urlencode:$template_string_urlencode"} {* 将通过 urldecode() è§£ç � *}
{include file="eval:base64:$template_string_base64"} {* 将通过 base64_decode() è§£ç � *}
