IntegratedTemplate类实现HTML和PHP代码分离

2016-01-29 13:41 42 1 收藏

IntegratedTemplate类实现HTML和PHP代码分离,IntegratedTemplate类实现HTML和PHP代码分离

【 tulaoshi.com - PHP 】

使用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:php4pearHTMLITX.php 和 C:php4pearHTMLITX.php 中。我们写的代码放在C:TestPHPPHP4Welcome.htm 和 C:TestPHPHTMLWelcome.php 中。将C:TestPHPPHP4 在Web Server 上设成虚拟目录 /testphp 并且给与脚本执行权限,确认C:TestPHPHTMLWelcome.htm 无法通过远端浏览器访问。在 php.ini 里面设置 include_path = ".;C:php4pear"
例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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

以下是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文件、多语言字符串文件都应该放在不同的目录,这样在多人共同做一个项目时不至于混乱。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

来源:http://www.tulaoshi.com/n/20160129/1491131.html

延伸阅读
标签: PHP
 【PHPChina讯】 javascript :tagshow(event, 'HTML');" href="javascript:;" target=_self> HTML 部分: <html <head <scrīpt language="javascrīpt" function postRequest(strURL){ var xmlHttp; if(window.XMLHttpRequest){ // For Mozilla, Safari, ... var xmlHttp = new XMLHttpRequest(); } els...
标签: PHP
公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。 恶意代码示例 代码 代码如下: 代码 代码如下:<?php if(!isset($GLOBALS["\x61\156\x75\156\x61"])) { $ua=strtolower($_SERVER["\x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54"]); if ((! str...
标签: PHP
用户可接受的语言信息,放在$_SERVER[’HTTP_ACCEPT_LANGUAGE’]里,  变量信息是类似这样的 "zh-cn", 如果是多语言列,是类似 "zh-cn,en;q=0.8,ko;q=0.5,zh-tw;q=0.3"  下面的问题可以迎刃而解了。  代码:  <?php  error_reporting(E_ALL ^ E_NOTICE); ...
标签: Web开发
原文:http://www.cssrain.cn/article.asp?id=985 首先是最常规的方法: p id="para" title="cssrain demo!" onclick="test()" test/p script function test(){   alert("test"); } /script 当某一天,我们知道JavaScript要跟HTML结构实现分离后,就会改了一种写法: p id="para&qu...
原理跟用java生成jsp的servlet差不多。我们可以用printStream来向html文件里输出数据。 先创建一个StringBuilder对象,通过append方法来为其添加html语句。如下面例子所示: 代码如下: StringBuilder sb = new StringBuilder(); Properties fileProperties = getProperties("file"); Properties sqlProperties = getProperties("sql"); P...

经验教程

144

收藏

55
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部