$i=0;
while ($row = $idb->fetch_array($result))
{
$i++;
$tpl->set_var("username" . $i, $row["username"]);
$tpl->set_var("score" . $i, $row["score"]);
}
//完成替换
$tpl->parse("mains", "main");
//输出
$tpl->pparse("mains", "main");
?>
这样你也能得到正确结果.在特殊情况下你或许需要这样做.但template提供了一个更方便的"大的模板变量",那就是块.我之所以称之为"大的模板变量",是因为它也可以视为可以包含其他模板变量的变量.形式如<ul>
<!-- begin list -->
<li>{username} 的成绩是 {score}
<!-- end list -->
</ul>
即用<!-- begin 块名称 -->和<!-- end 块名称 -->定义了一个名为list的块,(注意:我在这里为了方便理解,只称之为块名称).这个块里面又包含一些html代码(<li>等等)以及模板变量({username},{score}).
在讲述如何用块输出列表之前,我们先谈一下块的定义格式.
首先<!-- begin list -->和<!-- end list --> 都要各自为一行,亦即下面的块的定义是错误的
1,同行的 <!-- begin list -->
<li>{username} 的成绩是 {score}
<!-- end list -->
2,<!-- begin list -->
<li>{username} 的成绩是 {score}
<!-- end list --> 同行的
<!--和-->都是固定的,也就是说只能是两个中划线("-"),且它们与begin list之间都至少有一个空(空格或tab),看下面的例子<!--begin list -->
<!-- begin list-->
它们都是错误的块的定义方法,因为第一个<!--与begin之间至少应该有一个空,第二个-->与list之间至少有一个空.
begin/end和list之间也应该有一个空格,注意是有且仅有一个空格,不能多也不能少.
块的名称建议你只使用字符,数字,下划线以及它们的组合.
begin和end两个词语都应该是大写的。
好了,下面开始探讨如何是这个块变成一个列表.我们可以这样<?php
//包含进模板类 template.inc
require "inc/template.inc";
//创建一个实例
$tpl = new template("template");
//将整个文件读进来
$tpl->set_file("main", "second.html");