Php Smarty是否可以只读取一个块而不是在模板中?
首先,我对Smarty是个新手。 我有一些模板文件需要先解析。 因此,了解Smarty是否可以只解析一个特殊块,而不是解析包含许多块的整个文件将是一件有趣的事情。 有一个名为Php Smarty是否可以只读取一个块而不是在模板中?,php,templates,smarty,smarty3,Php,Templates,Smarty,Smarty3,首先,我对Smarty是个新手。 我有一些模板文件需要先解析。 因此,了解Smarty是否可以只解析一个特殊块,而不是解析包含许多块的整个文件将是一件有趣的事情。 有一个名为fetch()的函数,但它不是我所希望的那样工作 如果有可能做这样的事情,那就太好了 Smarty()->fetch($myTpl, array('blockname1')); 据我所知,你不能这样做,但你可以有多个Smarty文件。因此,您可以做什么: 一个Smarty文件(例如index.tpl): 另一个Sma
fetch()
的函数,但它不是我所希望的那样工作
如果有可能做这样的事情,那就太好了
Smarty()->fetch($myTpl, array('blockname1'));
据我所知,你不能这样做,但你可以有多个Smarty文件。因此,您可以做什么: 一个Smarty文件(例如
index.tpl
):
另一个Smarty文件(例如site.tpl
)
在PHP中,您现在可以执行以下操作:
$site = $smarty->fetch('site.tpl');
$smarty->assign('content', $site . ' xxx'); // you modify in PHP content a bit
$smarty->display('index.tpl');
输出将是:
bla bla bla
another bla bla bla xxx
bla bla bla
因此,正如您所看到的,您需要将要单独解析的块放入另一个文件中,然后获取它,然后您可以将其内容分配给另一个Smarty文件(或使用它执行任何操作-保存到文件等)。您可以使用和将此类函数修补在一起。
$site = $smarty->fetch('site.tpl');
$smarty->assign('content', $site . ' xxx'); // you modify in PHP content a bit
$smarty->display('index.tpl');
bla bla bla
another bla bla bla xxx
bla bla bla