smarty模板包含调用其他模板文件

作者:袖梨 2022-06-25

Smarty 模版包含文件的语法格式如下所示: {include file=$filename variable=$value …} 其中,$filename 是要包含的文件的文件名,variable 和value 是用于替换被包含文件中关键字的变量设定。

一、简单的包含文件的例子,其中test.htm 是模版文件,inc.html 是被包含的一个静态HTML模板文件。

 代码如下 复制代码

$smarty = new Smarty;
$smarty->display('test.html');$smarty = new Smarty;
$smarty->display('test.html');test.html文件的HTML 代码如下所示:




Inc File


{include file="inc.html"}



Inc File


{include file="inc.html"}

运行就可以看到,被包含的文件内容被显示出来了。

当然这个文件名也可以用变量来代替,比如像下面这样

 代码如下 复制代码


$smarty = new Smarty;
$inc_name = "inc.html";
$smarty->assign("inc_name",$inc_name); //替换变量
$smarty->display('test.html');$smarty = new Smarty;
$inc_name = "inc.html";
$smarty->assign("inc_name",$inc_name); //替换变量
$smarty->display('test.html');运行结果与前面相同。

二、如果被包含的文件是模版,则需要使用调用该模版文件的模版来指定其中的变量。将前面的inc.htm改写如下:

 

 代码如下 复制代码
$smarty = new Smarty;
$inc_name = "inc.html";
$inca = "我是被包含文件里面的变量";
$smarty->assign("inc_name",$inc_name); //替换变量
$smarty->assign("inca",$inca); //替换被包含文件里面的变量
$smarty->display('test.html');$smarty = new Smarty;
$inc_name = "inc.html";
$inca = "我是被包含文件里面的变量";
$smarty->assign("inc_name",$inc_name); //替换变量
$smarty->assign("inca",$inca); //替换被包含文件里面的变量
$smarty->display('test.html');

test.html模版文件如下所示:

 

 代码如下 复制代码


Inc File


{include file=$inc_name inca=$inca}



Inc File


{include file=$inc_name inca=$inca}

inc.html被包含文件代码:


{$inca}{$inca}运行之后,你可以看到被包含文件的变量也被替换了,非常方便。

相关文章

精彩推荐