是否可以在没有 tpl 文件的情况下使用 smarty 模板?

Is it possible to use smarty template without tpl file?

我需要将数据分配给 javascript 源。 是否可以在没有 tpl 文件的情况下使用 smarty 模板。 像这样...

$sHtml = '
    {foreach from=$myArray key=k item=v}
       <li>{$k}: {$v}</li>
    {/foreach}
';

$arr = array(9 => 'Tennis', 3 => 'Swimming', 8 => 'Coding');
$oSmarty = new smarty();
$oSmarty->assign('myArray', $arr);
$result = $oSmarty->fetch($sHtml);

echo $result;

Return这样...

<li>9: Tennis</li>
<li>3: Swimming</li>
<li>8: Coding</li>

从 Smarty 3 开始,您可以使用

$smarty->fetch('string:'.$content);

查看此处了解更多信息:String Template Resources

如果您使用的是 Smarty < 3,您可以将 $sHtml 的内容保存在一个临时文件中,并将文件名传递给 fetch 调用:

$smarty->fetch('file:/full/path/to/tmp/file');