模板文件可以包含普通标签和标签库标签。上节课,模板文件show.html中的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>学生列表</h3>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
{volist name="stu" id="row"}
<tr>
<td>{$row.no}</td>
<td>{$row.name}</td>
</tr>
{/volist}
</table>
</body>
</html>
其中{volist}属于标签库标签,{$row.no}属于普通标签
普通标签
普通标签用于变量输出和模板注释,普通模板标签默认以 { 和 } 作为开始和结束标识,并且在开始标记紧
跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。 例如: {$name} 、
{$vo.name} 、 {$vo['name']|strtoupper} 都属于正确的标签,而 { $name} 、 { $vo.name}
则不属于。
标签库标签
标签库标签可以用于模板变量输出、文件包含、条件控制、循环输出等功能。5.0版本的标签库默认定界符和普通标签一样使用 { 和 } ,是为了便于在编辑器里面编辑不至于报错,当然,你仍然可以更改标签库标签的起始和结束标签。
打开application目录下的config.php,找到如下代码:
// +----------------------------------------------------------------------
// | 模板设置
// +----------------------------------------------------------------------
'template' => [
// 模板引擎类型 支持 php think 支持扩展
'type' => 'Think',
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写
'auto_rule' => 1,
// 模板路径
'view_path' => '',
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DS,
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
],
把其中的taglib_begin 和 taglib_end 的值 改写如下:
// 标签库标签开始标记 'taglib_begin' => '<{', // 标签库标签结束标记 'taglib_end' => '}>',
然后,改写模板文件show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>学生列表</h3>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<{volist name="stu" id="row"}>
<tr>
<td>{$row.no}</td>
<td>{$row.name}</td>
</tr>
<{/volist}>
</table>
</body>
</html>
模板中的{volist} 改造成<{volist}>,最后运行http://127.0.0.1/tp5/public/index.php/index/index/show
做项目时,我们一般都把标签库标签的起始结束符号改写成<{ 和 }>。