当前位置: 首页 > 图文教程 > 网络编程 > PHP > 模板--为什么和如何在PHP中使用它们

PHP
php 远程图片保存到本地的函数类
php 破解防盗链图片函数
快速开发一个PHP扩展图文教程
PHP6 mysql连接方式说明
php 进度条实现代码
php discuz 主题表和回帖表的设计
php 无限级缓存的类的扩展
php adodb操作mysql数据库
php FPDF类库应用实现代码
sourcesafe管理phpproj文件的补充说明(downmoon)
AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
php一句话cmdshell新型 (非一句话木马)
php 木马的分析(加密破解)
PHP 数组入门教程小结
php 方便水印和缩略图的图形类
PHP加速 eAccelerator配置和使用指南
PHP 组件化编程技巧
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
两个强悍的php 图像处理类1
PHP 数据库 常见问题小结

模板--为什么和如何在PHP中使用它们


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 48 ::
收藏到网摘: n/a

  是否你面临着创建由一个编程人员(可能就是你)和一个设计人员同时进行创作的网站?你不知道如何使工作对你俩来说变得容易吗?我来给你答案:使用FastTemplate来使你的站点更容易定制!

  好了,你可能想知道为什么你要使用FastTemplates。


·可以在几秒钟改变你的整个站点的外观
·抽象程序设计,没有垃圾HTML代码
·设计人员不需要关心全部的"模糊"代码
·令人惊讶地快
·更容易重用旧的模版(对普通的表单而说)

  FastTemplate源于一个有同样名称的Perl软件包(可以在CPAN上找到)。你可以下载PHP 的版本从它的主页(本站下载地址为:http://www.phpe.net/downloads/1.shtml)。你只需要其中的一个类的文件(class.FastTemplate.php)。

  让我首先解释一下在使用模板生成一个页面与简单地通过echo或print 将页面输出之间有什么不同吧。
简单地使用echo/print的方法很适合编写短的脚本,但是不能帮助你更好的组织和定制。模板在另一方面给
了你创建多国语言站点的能力,只是通过改动一个参数。他们可以促使你更关心你要做的。

  在开始编码之前不要害怕思考。它可能会花费一些时间,但是这些花费会随着项目的发展对你有所回报。

  那么,如何应用FastTemplate呢?首先你需要先进行一个简单地调用:

<?php $tpl=new FastTemplate ("path");
?>

传递给它一个路径,是所有你的模板文件存放的目录。它返回一个对象,你可以用它进行参
数赋值,生成页面等等。

  FastTemplate是基于这样一种假设:一个很大的页面是由很多小的部分组成的。每一个部分有一个唯一
的名字。最小的部分是赋值给这样有着唯一名字的一段正常的文本字符串。这个可以通过

<?php
$tpl->assign(NAME, "text");
?>

来完成。现在,如果你的一个模板包含{NAME},FastTemplate 就知道你
的意图了。

  另外,FastTemplate需要知道你想如何调用你的模板。你需要通过传递一个相关数组(associative
array)给

<?php $tpl->define(); ?>

来给它一个提示。

<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>

  这些赋值将分别给foo和bar以不同的文件(名为foo.tpl和bar.tpl)。

 

  现在你想让FastTemplate替换在模板foo中的所有{MACROS}为相应的值。通过发出命令

<?php
$tpl->parse(PAGECONTENT, "foo");
?>

来实现。 这个命令将把模板"foo"的内容赋给PAGECONTENT。   当然,我们还没有做完,因为模板bar中为主要的页面定义,FastTemplate需要替换其中的
{PAGECONTENT}宏。我们也需要给PAGETITLE赋值,如下所做:

<?php
$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");
?>

  容易吧,不是吗?我们现在只需要把它输出:

<?php
$tpl->FastPrint(MAIN);
?>

  下面三个文件显示了实际练习中的更多的细节描述。我不知道在现实生活了离了这个技术应如何生活 --
你的设计者会高兴,你的老板会微笑,因为你可以在更短的时间内做更多的事情。

bar.tpl

<!-- bar.tpl -->
<HTML>
<HEAD><TITLE>Feature world - {PAGETITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGETITLE}</H1>
{PAGECONTENT}
</BODY>
</HTML>

foo.tpl

<!-- foo.tpl -->
很明显示什么都没做。请看{NAME}.

demo.php3

<?php
include "class.FastTemplate.php3";

$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));

$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "Welcome!");

$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");

$tpl->FastPrint(MAIN);
?>


创建整个表格
  我也写了一个短的例子,用来演示如何通过单行模板来生成整个表格。它很有效,因为你仍然不需要直
接修改HTML文档。

  我们增加一个模板的内容到一个已经定义过的唯