phplib template简明教程
第一章
PHP世界中比较流行的模板处理工具有PHPLIB
phplib
随着php的应用和推广,众多开发人员和很多爱好者在php的基础上开发了很多php的程序库,这些程序库大大简化了程序设计和提高了代码的可重用性。其中phplib就是这些库中相当优秀的产品。phplib有五大功能:将数据库驱动和对数据库操作完全分离;支持session;权限许可;模板;购物车。我们要用的模板功能只是phplib这个库的诸多功能中的一种。笔者刚开始看phplib
要说安装,其实就是下载phplib库文件。你可以到phplib的官方网站下载最新的版本:http://phplib.sourceforge.net
第二章
我理解,所谓"模板",就是将界面和实现代码分离开来,这样做的目的一是将美工和程序员的工作分离开来,提高工作效率,二是方便维护。下面我们就开始尝试写一个简单的模板了,文件名first.htm。
<HEAD>
<TITLE>
</HEAD>
<BODY>
你知道吗?
<font
</BODY>
</HTML>
first.html模板中的{man}{author}{date}可以称为"模板变量",用花括号({})括起来。
上面我们定义三个变量的原因是我们想随时改变它们的值,下面我们就来做这个工作。新建first.php文件,内容如下:
include
$tpl
$tpl->set_file('main',
$tpl->set_var('man',
$tpl->set_var('author',
$tpl->parse('mains',
$tpl->p('mains');
?>
你也可以一次完成给变量赋值,这样
array('man'=>'fuyatao',
);
浏览器中浏览这个文件,你就会发现输出:你知道吗?fuyatao真是一个好人。作者:fuyatao.
初次尝试还算顺利吧?如果没有如你所愿地看到上述文字,那一定是你哪里弄错了。浏览器会有提示。还有如果你将这些代码复制到本机不能正确执行,有可能是标点符号的问题,必须用英文的标点符号,程序中用中文的引号或分号都会引起程序不能正常运行,本人就曾经吃过这个亏,反复检查程序没有错,可就是执行不了,后来才发现是一个地方用错了标点。
第三章
现在我们设想稍微复杂一点的情况,新建一个second.htm模板文件,内容为:
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD>
下面是一个列表
<UL>
<li>谷军涛
<li>武剑
<li>青竹
<li>王聪聪
</UL>
</BODY>
</HTML>
以上页面是纯静态的,假设要使用数据库,用PHP代码嵌入HTML的话,是这样写的:
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD>
下面是一个列表
<?php
$link=mysql_connect('localhost','fuyatao','
$result=mysql_db_query('gfs','select
echo
while
echo
}
?>
</UL>
</BODY>
</HTML>
PHP新手一般都这样写,但你很快发现:你或者美工改这个列表样式的时候需要多么的小心翼翼,特别是美工,如果他不懂PHP代码,那么他会终日在恐惧之中!因为稍微的不小心,可能就会带来程序的运行错误。对于页面的维护来说,非常不方便。即便是你自己写的代码,过一段时间你也可能有所遗忘,修改起来一样要备加小心。
现在有了模板,你可以把PHP代码抽取出来。
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD>
下面是一个列表
<UL>
<li>{
<li>{name2}
<li>{name3}
<li>{name4}
</UL>
</BODY>
</HTML>
建立second.php:
include
$tpl
$tpl->set_file('main',
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select
$i=0;
while
{
$i++;
$tpl->set_var('name'
$tpl->set_var('tall'
}
$tpl->parse('mains',
$tpl->p('mains',
?>
在浏览器里执行
第四章
在上一章中,我们使用模板把html和php代码分开。其中second.htm模板中关于列表部分是这样写的:
<li>{name1}
<li>{name2}
<li>{name3}
<li>{name4}
</UL>
是不是有点烦琐?本来没用模板之前,我们用了一句
echo
}
就搞定了,用了模板,反而要写4次,如果是100人的列表,岂不是我们要写100次?天啊!够吓人的。好在phplib
<!–
<li>{name}
<!–
</UL>
需要注意的是,BEGIN
在
include
$tpl
$tpl->set_file('main',
$tpl->set_block('main',
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select
while
{
$tpl->set_var('name',$a[name]);
$tpl->set_var('tall',$a[tall]);
$tpl->parse('nlist',
}
$tpl->parse('mains',
$tpl->p('mains');
?>
第五章
在写PHP页面的时候,我们会发现像页面头部分和尾部分,有好多页都要用,每页写一遍就太麻烦了,这些”公用代码”我们可以把它单独写在一个文件里,如果这个公用部分要有所改动,无需再去改每一个页面,能减少非常多的工作量。用Template模板可以很方便的把一个页面随意插入另一个模板的任意地方。
新建3个文件third.htm、header.htm、footer.htm,内容分为如下
third.htm
{header}
<BODY>
下面是一个列表
<UL>
<!–
<li>{name}
<!–
</UL>
<!–
{footer}
</BODY>
</HTML>
header.htm
<HEAD>
<TITLE>
</HEAD>
footer.htm
下面我们开始我们的PHP程序:
include
$tpl
$tpl->set_file('main',
$tpl->set_file('my_header',
$tpl->set_file('my_footer',
$tpl->set_var('title',
$tpl->set_block('main',
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select
while
{
$tpl->set_var('name',$a[name]);
$tpl->set_var('tall',$a[tall]);
$tpl->parse('nlist',
}
$tpl->parse('header',
$tpl->parse(footer,
$tpl->parse('mains',
$tpl->p('mains');
?>
From:http://blog.sina.com.cn/s/blog_491de9d601009waa.html~type=v5_one&label=rela_nextarticle
http://hi.baidu.com/showecn/blog/item/8b85f0d0ec0d3387a0ec9cde.html