PHPLIB Template入门系列 -2 开始你的第一个应用[1]

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

本文简介:选择自 ccterran 的 blog

一个封装很好的类对使用者(可能不是开发者本人)来说,最大的好处就是,你无需知道类内部是怎么运作的,只需知道如何利用它提供的接口做你想做的事情即可.所以,本文不打算具体讲述phplib template(以下简称template)是如何将"元素"转换成"值"的,你需要了解的是"它能这样做",而不是"它为什么能这样做".

好了,下面我们就开始它的第一个应用了.

先在我们要测试的网站的目录下建两个文件夹inc和template.目录inc下放引用文件,比如类库,函数库等,这里我们就把template.inc放如该目录下.tempate下放模板文件,我们先建一个模板文件first.html,内容如下
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> 我的第一个模板文件 </title>
</head>

<body>
真想对你说:我爱你 {lover} ,但我却不敢说,因为我知道你爱的人是 {man}.
<p>
<font color="#0000ff">{author}</font> 于 {date}
</body>
</html>

用inc,template命名文件目录,都是我的个人习惯,你完全可以采取不同的方式.我用扩展名为.html的名称命名模板文件,是为了方便美工用frontpage或者dreamweaver修改,但这完全取决于你自己的习惯.

first.html模板中的{lover},{man},{author}可以称为"模板变量",用花括号({})把变量名称括住即组成一个模板变量.模板变量就是模板元素的一种。你可能会担心它的命名问题,其实除了空格(" "),回车换行("\r", "\n"),tab(\t)外它都被视为是正确的.所以
{your-lover}
也是正确的.这点有时可能会令你很痛苦,因为模板里的有些javascript代码可能无意间变没有了,比如
if(a>b){document.write("i love u");}
中的
{document.write("i love u");}
也被视为一个变量了.上面的代码在你选的模板处理方式下,可能会变成if(a>b){},从而导致javascript错误.为什么会"变没"了呢?稍后将做解释.

上面我们定义的三个变量{lover},{man},{author}的原因是,我们想随时改变它们的值.下面我们就来做这个工作.新建first.php文件,内容如下:
<?php
//包含进模板类 template.inc
require "inc/template.inc"
;

//创建一个实例
$tpl = new template("template", "keep");
//注1

//将整个文件读进来
$tpl->set_file("main", "first.html");
//注2

//给文件中的模板变量赋值
$tpl->set_var("lover", "kiki");
//注3
$tpl->set_var("man", "ccterran");
//注4
$tpl->set_var("author", "iwind");
//注5

//完成替换
$tpl->parse("mains", "main");
//注6

//输出替换的结果
$tpl->p("mains");
//注7

?>

浏览器中浏览这个文件,你就会发现输出

真想对你说:我爱你 kiki ,但我却不敢说,因为我知道你爱的人是 ccterran.

iwind 于 {date}

本文关键:PHPLIB Template入门系列 -2 开始你的第一个应用
  相关方案
Google
 

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

go top