当前位置: 首页 > 图文教程 > 网络编程 > PHP > IntegratedTemplate类实现HTML和PHP代码分离

PHP
《PHP设计模式介绍》第十三章 适配器模式
《PHP设计模式介绍》第十四章 动态记录模式
《PHP设计模式介绍》第十五章 表数据网关模式
《PHP设计模式介绍》第十六章 数据映射模式
《PHP设计模式介绍》第十七章 MVC 模式
Zend Framework 入门——快速上手
Zend Framework 入门——多国语言支持
Zend Framework 入门——错误处理
Zend Framework 入门——页面布局
详细介绍php5编程中的异常处理
PHP5 OOP编程中的代理与异常
PHP程序的常见漏洞攻击分析
PHP.MVC的模板标签系统
PHP教程:PHP编码书写规范
PHP开发大型项目的方法:OOP思想
php使用curl模拟用户登陆
php对gb编码动态转utf-8编码的几种方法评测
php设计模式介绍之章代理模式
“在phpMyAdmin使用用户口令登陆”补充
PHP入门速成

IntegratedTemplate类实现HTML和PHP代码分离


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

使用PHP编程的人都会碰到这样一个问题:当PHP代码和HTML代码在一起的时候,看PHP代码很费劲,整个文件也无法用Dreamweaver来编辑,这对于PHP程序员和美工来讲,修改这样的文件就象一个噩梦。
PHP中的模板(Template)技术就是为了解决这个问题而出现的。PHP模板类有很多,比较常见的是 FastTemplate 和 PHPLib, 因为出现得早,在PHP编程界名声很大。PHP程序员不知道这两个类,就象VB程序员不知道MsgBox函数一样,是一件不可思议的事情。
以前我们需要去下载PHP模板类,现在PHP4有了自己的模板类 IntegratedTemplate 和 IntegratedTemplateExtension,功能和PHPLib 差不多。这两个类是子类和父类的关系。一般我们用 IntegratedTemplateExtension 就可以了。让人感到不可思议的是 IntegratedTemplate 不是从 PEAR 类继承过来,无法用到 PEAR 类的 debug 功能。
以下举例子说明它们的用法,假设 IntegratedTemplate 类和 IntegratedTemplateExtension 类分别在 C:\php4\pear\HTML\ITX.php 和 C:\php4\pear\HTML\ITX.php 中。我们写的代码放在C:\TestPHP\PHP4\Welcome.htm 和 C:\TestPHP\HTML\Welcome.php 中。将C:\TestPHP\PHP4 在Web Server 上设成虚拟目录 /testphp 并且给与脚本执行权限,确认C:\TestPHP\HTML\Welcome.htm 无法通过远端浏览器访问。在 php.ini 里面设置 include_path = ".;C:\php4\pear"
例1:
我们在HTML文件中放置变量的标记,用PHP代码设置变量的值,然后将HTML中的标记替换掉,最后输出到客户浏览器。
以下是 Welcome.htm 代码,我们放了三个PHP tag(变量标记)为: {WelcomeTitle}、{UserName}、{WelcomeMessage}
<html>
<head>
<title>{WelcomeTitle}</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
body,p,br,div,td,table { font-size: 9pt}
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p align="center">您好,{UserName}</p>
<p align="center">{WelcomeMessage} </p>
</body>
</html>

以下是Welcome.php代码
<?php
require_once "HTML/ITX.php";

//以下是给变量赋值,在实际代码中可能从Database中取得数据然后赋值
$WelcomeTitle = "欢迎来到网页天堂";
$UserName = "皮皮鲁";
$WelcomeMessage = "您的到来让我们深感荣幸!";

//一般来说这种全局变量放在单独的一个文件中,便于维护
$HTML_CODE_FILE_ROOT = "../HTML/";

$tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);

指定要替换 tag 的 HTML 文件
$tpl->loadTemplatefile("Welcome.htm");

替换HTML 文件中的 tag
$tpl->setVariable( array (
"WelcomeTitle" => $WelcomeTitle,
"UserName" =>$UserName,
"WelcomeMessage" =>$WelcomeMessage
) );

输出替换后的 HTML
$tpl->show();
?>

这样写好后,Welcome.htm 仍然可以使用网页编辑器如Dreamweaver、FrontPage 进行编辑,Welcome.php中是纯粹的PHP代码,不含HTML,方便以后的代码修改和维护。
如果将 IntegratedTemplateExtension 类和 PHP4中的 Cache 类 联合使用,在速度上可以得到很好的效果。
PHP4 模板类还可以使用 Block,配合其他 PHP4 中的类 可以很轻松地实现数据库数据检索的翻页,可以很轻松写出论坛之类的软件。

补充说明:为了防止用户直接用 Welcome.htm 看网页,将 Welcome.htm 放在客户访问不到的目录(只要不在Web Server 的虚拟目录下即可)。对于大型的PHP项目,图片、PHP代码、HTML文件、多语言字符串文件都应该放在不同的目录,这样在多人共同做一个项目时不至于混乱。