PHP世界中比较流行的模板处理工具有PHPLIB Template和FastTemplate两种。据笔者看有关资料介绍,PHPLIB Template的技术易用性和速度较为理想,所以俺就学习使用了PHPLIB Template。
phplib template 的安装其实非常简单。现在说简单,呵呵,其实刚开始上手的时候竟然花了好几天的功夫才知道大概是怎么一回事儿。那我们首先来认识一下phplib吧。
随着php的应用和推广,众多开发人员和很多爱好者在php的基础上开发了很多php的程序库,这些程序库大大简化了程序设计和提高了代码的可重用性。其 中phplib就是这些库中相当优秀的产品。phplib有五大功能:将数据库驱动和对数据库操作完全分离;支持session;权限许可;模板;购物 车。我们要用的模板功能只是phplib这个库的诸多功能中的一种。笔者刚开始看phplib 的网方官站 ,就看得一头雾水,怎么还有数据库、session等等,最后才明白原来俺需要的只是template。
要说安装,其实就是下载phplib库文件。你可以到phplib的官方网站下载最新的版本:http://phplib.sourceforge.net 这是一个 tar.gz 压缩包,下载完之后就是解压了。打开解压后的文件夹,里边有一个php文件夹,将该php文件夹复制到任何你想要的其它位置,但不要放在网页 服务器的目录下。比如:我的网页服务器根目录是:/var/www,我可以将php文件夹放在/ var下,与www文件夹平行。然后打开php的配置文件php.ini进行编辑。更改include_path,使其指向刚刚复制的php文件夹的位 置。比如:include_path = ".:/var/www/php"。phplib的官方站quick guide to installation讲了十个步骤,我们只用phplib template这一项功能的话,其它的安装步骤其实根本不用理会。保存退出,重启 apache2服务。然后就可以尝试编写你的第一个模板页了。
我是这样做的:我的网页服务器根目录是:D:\www\root,我的PHP安装目录是 D:\www\php,将下载的tar.gz 压缩包,解压后找到里面那个php文件,然后更名为phplib,它的存放目录是 D:www\phplib,然后打开php的配置文件php.ini进行编辑。更改include_path,使其指向刚刚复制的php文件夹的位 置:include_path=".;D:"www"phplib",一定不能写成 include_path="D:"www"phplib",要不然,进入phpMyAdmin后,将会是一片空白.
第二章 第一个简单的模板页
我理解,所谓"模板",就是将界面和实现代码分离开来,这样做的目的一是将美工和程序员的工作分离开来,提高工作效率,二是方便维护。下面我们就开始尝试写一个简单的模板了,文件名first.htm。
<HTML>
<HEAD>
<TITLE> 我的第一个模板文件 </TITLE>
</HEAD>
<BODY>
你知道吗? {man}真是一个好人。
<font color="#0000FF"> 作者:{author}</font>
</BODY>
</HTML>
first.html模板中的{man}{author}{date}可以称为"模板变量",用花括号({})括起来。
上面我们定义三个变量的原因是我们想随时改变它们的值,下面我们就来做这个工作。新建first.php文件,内容如下:
<?php
include ('template.inc'); //包含进模板类 template.inc
$tpl = new Template; //创建一个新模板
$tpl->set_file('main', 'first.html'); //把模板文件加载进来
$tpl->set_var('man', 'fuyatao'); // //给文件中的模板变量赋值
$tpl->set_var('author', 'fuyatao');
$tpl->parse('mains', 'main'); // //完成替换
$tpl->p('mains'); // //输出替换的结果
?>
你也可以一次完成给变量赋值,这样
$tpl->set_var(
array('man'=>'fuyatao', 'author'=>'fuyatao')
);
浏览器中浏览这个文件,你就会发现输出:你知道吗?fuyatao真是一个好人。作者:fuyatao.
初次尝试还算顺利吧?如果没有如你所愿地看到上述文字,那一定是你哪里弄错了。浏览器会有提示。还有如果你将这些代码复制到本机不能正确执行,有可能是标 点符号的问题,必须用英文的标点符号,程序中用中文的引号或分号都会引起程序不能正常运行,本人就曾经吃过这个亏,反复检查程序没有错,可就是执行不了, 后来才发现是一个地方用错了标点。
第三章 稍复杂点的应用
现在我们设想稍微复杂一点的情况,新建一个second.htm模板文件,内容为:
<HTML>
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD> <BODY>
下面是一个列表
<UL>
<li>谷军涛 的身高是 170cm
<li>武剑 的身高是 171cm
<li>青竹 的身高是 180cm
<li>王聪聪 的身高是 172cm
</UL>
</BODY>
</HTML>
以上页面是纯静态的,假设要使用数据库,用PHP代码嵌入HTML的话,是这样写的:
<HTML>
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD> <BODY>
下面是一个列表
<?php
$link=mysql_connect('localhost','fuyatao',' passwd');
$result=mysql_db_query('gfs','select name,tall from my_table');
echo "<UL>";
while ($a = mysql_fetch_array($result)){
echo "<li>$a[name]的身高是$a[tall]";
}
?>
</UL>
</BODY>
</HTML>
PHP新手一般都这样写,但你很快发现:你或者美工改这个列表样式的时候需要多么的小心翼翼,特别是美工,如果他不懂PHP代码,那么他会终日在恐惧之 中!因为稍微的不小心,可能就会带来程序的运行错误。对于页面的维护来说,非常不方便。即便是你自己写的代码,过一段时间你也可能有所遗忘,修改起来一样 要备加小心。
现在有了模板,你可以把PHP代码抽取出来。 我们可以这样修改second.htm文件。
<HTML>
<HEAD>
<TITLE>第二个模板文件</TITLE>
</HEAD> <BODY>
下面是一个列表
<UL>
<li>{ name1} 的身高是 {tall1}
<li>{name2} 的身高是 {tall2}
<li>{name3} 的身高是 {tall3}
<li>{name4} 的身高是 {tall4}
</UL>
</BODY>
</HTML>
建立second.php:
<?php
include ('template.inc');
$tpl = new Template;
$tpl->set_file('main', 'second.htm');
/******************************/
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select name,tall from my_table');
$i=0;
while ( $a = mysql_fetch_array($result))
{
$i++;
$tpl->set_var('name' . $i, $a[name]);
$tpl->set_var('tall' . $i, $a[tall]);
}
//********************************************************
/*上面是用面向面向过程的方法,如果想用面向对象的方法,可以这样写
@ $db = new mysqli('localhost','root','tograce','bookmarks');
$query = "select username,email from user";
$result = $db->query($query);
$num_result = $result->num_rows;
for($i=1;$i <$num_result+1;$i++)
{
$row = $result->fetch_assoc();
$tpl->set_var('name'.$i,$row[username]);
$tpl->set_var('email'.$i,$row[email]);
}
*********************************************************/$tpl->parse('mains', 'main');
$tpl->p('mains', 'main');
?>
在浏览器里执行 second.php 一样会得到正确的结果。这样以后不管是你还是美工修改页面的时候,再也不用胆颤心惊、担心会把程序弄坏了。
第四章 block的应用
在上一章中,我们使用模板把html和php代码分开。其中second.htm模板中关于列表部分是这样写的:
<UL>
<li>{name1} 的身高是 {tall1}
<li>{name2} 的身高是 {tall2}
<li>{name3} 的身高是 {tall3}
<li>{name4} 的身高是 {tall4}
</UL>
是不是有点烦琐?本来没用模板之前,我们用了一句
while ($a = mysql_fetch_array($result)){
echo "<li>$a[name]的身高是$a[tall]";
}
就搞定了,用了模板,反而要写4次,如果是100人的列表,岂不是我们要写100次?天啊!够吓人的。好在phplib templete为我们提供了block,将其真译为"块"。通过定义块,也可以用一行轻松搞定。
<UL>
<!-- BEGIN list -->
<li>{name} 的身高 {tall}
<!-- END list -->
</UL>
需要注意的是,BEGIN list与前后的中划线–之间必须有空格,前后中划都是两个,此处可能由于显示太小,两个中划线连到一块儿了。
在 second.php中需要加载块。
<?php
include ('template.inc');
$tpl = new Template;
$tpl->set_file('main', 'second.htm');
$tpl->set_block('main', 'list', 'nlist'); //加载模板main中的块list,并给其一个名字nlist
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select name,tall from my_table');
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var('name',$a[name]);
$tpl->set_var('tall',$a[tall]);
$tpl->parse('nlist', 'list', true);
}
$tpl->parse('mains', 'main');
$tpl->p('mains');
?>
第五章 模板嵌套
在写PHP页面的时候,我们会发现像页面头部分和尾部分,有好多页都要用,每页写一遍就太麻烦了,这些”公用代码”我们可以把它单独写在一个文件里,如果 这个公用部分要有所改动,无需再去改每一个页面,能减少非常多的工作量。用Template模板可以很方便的把一个页面随意插入另一个模板的任意地方。
新建3个文件third.htm、header.htm、footer.htm,内容分为如下
third.htm
<!– 这是页面头部 –>
{header}
<BODY>
下面是一个列表
<UL>
<!– BEGIN list –>
<li>{name} 的身高是 {tall}
<!– END list –>
</UL>
<!– 这是页脚部分 –>
{footer}
</BODY>
</HTML>
header.htm
<HTML>
<HEAD>
<TITLE> {title} </TITLE>
</HEAD>
footer.htm
<P>author © fuyatao
下面我们开始我们的PHP程序:
<?php
include ('template.inc');
$tpl = new Template;
$tpl->set_file('main', 'third.htm');
$tpl->set_file('my_header', 'header.htm');
$tpl->set_file('my_footer', 'footer.htm');
$tpl->set_var('title', '这个是网页标题');
$tpl->set_block('main', 'list', 'nlist');
$link=mysql_connect('localhost','fuyatao','passwd');
$result=mysql_db_query('fyt','select name,tall from my_table');
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var('name',$a[name]);
$tpl->set_var('tall',$a[tall]);
$tpl->parse('nlist', 'list', true);
}
$tpl->parse('header', 'my_header');
$tpl->parse(footer, my_footer);
$tpl->parse('mains', 'main');
$tpl->p('mains');
?>
分享到:
相关推荐
第一章 安装和配置windwos server 2003.ppt
本章将详细介绍如何进行ZooKeeper组件的安装配置,包括实验目的、实验要求、实验环境以及详细的安装步骤。 1. 实验目的 通过完成ZooKeeper的安装配置,学习者应能掌握以下几个关键点: - 下载和安装ZooKeeper的流程...
Sqoop 组件安装配置 Sqoop 是 Apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具。主要用于在 Hadoop(Hive) 与传统的数据库 (MySQL 、 Oracle 、 Postgres 等 ) 之间进行数据的传递,可以将一个...
Sqoop 组件安装配置 Sqoop 是一个开源的数据传输工具,用于在 Hadoop 和结构化数据存储之间传输数据。 Sqoop 提供了一个命令行界面,允许用户定义数据传输的参数和配置。Sqoop 的安装和配置是将其集成到 Hadoop ...
HBase 组件安装配置 HBase 是一个开源的、分布式的、面向列的 NoSQL 数据库,它基于 Hadoop 文件系统,使用 Java 语言编写。在大数据处理和存储中,HBase 是一个非常重要的组件。本章将介绍 HBase 组件的安装和配置...
第一章 概述 FreeRadius安装配置说明书旨在指导读者在Linux环境下安装和配置FreeRadius服务器,提供了详细的安装步骤和配置指南。本文档适合具备基本 Linux知识和网络基础知识的读者。 第二章_FreeRadius安装前的...
在第一章“JDK的安装与配置”中,我们将深入探讨以下关键知识点: 1. **JDK是什么**:JDK是Java开发工具包,包含了编译Java源代码所需的Java编译器(javac)、运行Java程序的Java虚拟机(JVM)以及各种开发工具,如...
在进行本实验前,您需要熟悉 Hive 组件的安装配置和格式化和启动。 3. 实验环境 本实验需要以下资源环境: * 服务器集群至少 3 个节点,节点间网络互通,各节点最低配置:双核 CPU、8GB 内存、100G 硬盘 * 运行...
本章主要探讨了如何正确安装和配置 ServeRAID-8i, ServeRAID-8k, 以及 ServeRAID-8k-l 这三款SAS控制器。以下是对整个过程的详细解析。 首先,安装ServeRAID控制器前的关键步骤是获取相关的软件升级。IBM会定期在其...
【第一章:Linux简介】 在这一章中,你会学习到Linux的历史、哲学以及它在全球范围内的广泛应用。了解Linux的开源特性,以及与Windows和Mac OS等其他操作系统相比的优势。此外,还会介绍主流的Linux发行版,如...
Hive 组件安装配置 Hive 是基于 Hadoop 的数据仓库工具,用于存储和处理大量数据。安装和配置 Hive 组件是使用 Hive 的前提条件。本章节将指导您完成 Hive 组件的安装和配置,包括下载和解压安装文件、设置 Hive ...
本章将深入讲解如何安装OpenResty开发环境,帮助你搭建起一个基于Nginx的动态、高性能Web应用程序平台。 首先,我们要了解OpenResty是什么。OpenResty是一个开源项目,它集成了Nginx服务器和LuaJIT,允许开发者在...
**第二章 MySQL的安装与配置** 在学习MySQL的安装与配置过程中,首先会涉及不同操作系统的安装步骤。本文主要涵盖Windows和Linux两个平台。 **2.1 Windows平台下安装与配置MySQL 5.6** 在Windows环境下,MySQL...
【第8章应用服务器安装配置】讲解了在IT领域中如何搭建和配置应用服务器,以满足企业网络服务的需求。在本章中,首先提到了一个实际应用情境,小张需要安装配置服务器,以提供Web服务、文件传输服务,并考虑安装DHCP...
【第9章网络服务系统安装配置】主要涵盖了网络服务的核心组件——DNS服务器的安装与配置。DNS(域名系统)是互联网的重要基础设施,它负责将人类可读的域名转换成网络可识别的IP地址。理解DNS的基本概念、工作过程...
HBase 组件安装配置知识点总结 本章节主要讲述 HBase 组件的安装和配置过程。下面是对应的知识点总结: 1. HBase 组件安装的实验目的: * 掌握 HBase 安装与配置 * 掌握 HBase 常用 Shell 命令 2. HBase 组件...
惠普刀片服务器硬件安装配置手册 本手册主要介绍惠普刀片服务器的硬件安装配置,旨在帮助用户快速、正确地安装和配置刀片服务器,提高服务器的性能和可靠性。 第1章 刀片服务器硬件配置 在本章中,我们将介绍刀片...
通过学习和实践本章内容,读者应能熟练掌握SQL Server 2000的安装、配置和基础管理操作,为后续的数据库管理与开发打下坚实的基础。此外,持续学习和更新知识,了解SQL Server的更新版本如SQL Server 2005、2008乃至...
以及适当的显示器配置,以便于进行安装和管理操作。软件条件则主要是操作系统的要求,Oracle 19C支持Windows 10操作系统及以上版本。 接下来是Oracle 19C软件的安装。首先,从Oracle官方网站下载对应操作系统的...