什么是 Smarty?
为什么使用它?
用例和工作流
语法比较
模板继承
最佳实践
快速入门
display() - 显示模板
void display(string template,
string cache_id,
string compile_id);
用于显示模板的内容。要将模板内容返回到一个变量中,请使用 fetch()
。提供一个有效的 模板资源 类型和路径。你可以将一个 $cache_id
作为可选的第二个参数传递,有关更多信息,请参阅缓存部分。
你可以将一个 $compile_id
作为可选的第三个参数传递。如果你想编译同一模板的不同版本,比如为不同的语言编译独立的模板,那么会使用到此参数。你也可以设置 $compile_id
变量一次,而不用在每次调用此函数时都将此参数传递给她。
示例 14.19。display()
<?php include(SMARTY_DIR.'Smarty.class.php'); $smarty = new Smarty(); $smarty->setCaching(true); // only do db calls if cache doesn't exist if(!$smarty->isCached('index.tpl')) { // dummy up some data $address = '245 N 50th'; $db_data = array( 'City' => 'Lincoln', 'State' => 'Nebraska', 'Zip' => '68502' ); $smarty->assign('Name', 'Fred'); $smarty->assign('Address', $address); $smarty->assign('data', $db_data); } // display the output $smarty->display('index.tpl'); ?>
示例 14.20。其他 display() 模板资源示例
使用 模板资源 的语法来显示 $template_dir
目录外部的文件。
<?php // absolute filepath $smarty->display('/usr/local/include/templates/header.tpl'); // absolute filepath (same thing) $smarty->display('file:/usr/local/include/templates/header.tpl'); // windows absolute filepath (MUST use "file:" prefix) $smarty->display('file:C:/www/pub/templates/header.tpl'); // include from template resource named "db" $smarty->display('db:header.tpl'); ?>
另请参阅 fetch()
和 templateExists()
。