PHPLIB Template入门系列 - 3 块的应用[4]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 ccterran 的 blog

可以看到在php代码里有两个东西
$tpl->set_block("main", "list", "lists"); //代码1
$tpl->parse("lists", "list", true);

就不可思议的将整个块循环输出了.代码1用来加载模板main中的块list,并给其一个名字lists,list就是模板中的一个大变量,它的内容就是<li>{username} 的成绩是 {score}即:
"list" = "<li>{username} 的成绩是 {score}"
之所以用lists命名,是为了程序的可读性,也就是说我很容易就知道xxxs是xxx块的名称.

使用set_block后,模板中的块内容
<!-- begin list -->
<li>{username} 的成绩是 {score}
<!-- end list -->

就被lists代替了.于是我们的模板就变成了
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> 我的第二个模板文件 </title>
</head>

<body>
下面是一个列表
<ul>
{lists}
</ul>
</body>
</html>

块变成了一个变量(lists)!下面只要将lists变量替换成我们想要的就行了.

代码二所处的循环
while ($row = $idb->fetch_array($result))
{
$tpl->set_var("username", $row["username"
]);
$tpl->set_var("score", $row["score"
]);
$tpl->parse("lists", "list", true);
//代码2
}

每一次循环,两个set_var分别给username,score赋值,然后"list"就变成了
"list" = "<li>具体的名字 的成绩是 具体的分数"
代码2就是将list分析后的内容赋给lists,这样就完成了整个块的分析.

parse第三个参数可以设置list中的值是直接存在lists里面,还是附加在原有值之后.我们这里设置为true,说明是附加在原有值之后,才得以每个list的值都会显示出来.反之设为false的话,后面的值会覆盖掉以前的值.最终的结果会是


下面是一个列表

  • 麻子 的成绩是 77

本文关键:PHPLIB Template入门系列 - 3 块的应用
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top