Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Smarty是否可以只读取一个块而不是在模板中?_Php_Templates_Smarty_Smarty3 - Fatal编程技术网

Php Smarty是否可以只读取一个块而不是在模板中?

Php Smarty是否可以只读取一个块而不是在模板中?,php,templates,smarty,smarty3,Php,Templates,Smarty,Smarty3,首先,我对Smarty是个新手。 我有一些模板文件需要先解析。 因此,了解Smarty是否可以只解析一个特殊块,而不是解析包含许多块的整个文件将是一件有趣的事情。 有一个名为fetch()的函数,但它不是我所希望的那样工作 如果有可能做这样的事情,那就太好了 Smarty()->fetch($myTpl, array('blockname1')); 据我所知,你不能这样做,但你可以有多个Smarty文件。因此,您可以做什么: 一个Smarty文件(例如index.tpl): 另一个Sma

首先,我对Smarty是个新手。 我有一些模板文件需要先解析。 因此,了解Smarty是否可以只解析一个特殊块,而不是解析包含许多块的整个文件将是一件有趣的事情。 有一个名为
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