我就喜欢简单:)<?php
// QuickTpl类,用于模板// lovered (GV) 于2004年4月11日创建
class QuickTpl { var $filename; //模板文件 var $content; //返回内容
//初始化模板文件,将所有内容读入 function QuickTpl($tplfilename) { $this->filename=$tplfilename; $fd = fopen( $this->filename, "r" ); $this->content = fread($fd, filesize($this->filename)); fclose( $fd ); }
//替换标志位内容 function Assign($key,$value) { $this->content=str_replace("{".$key."}",$value,$this->content); }
//替换标志块内容 function BlockAssign($block_name,$values) { //获得替换块的子模板 if(is_array($values)) { ereg("{".$block_name."}.*{/".$block_name."}",$this->content,$regs); $str_block=substr($regs[0],2+strlen($block_name),-(strlen($block_name)+3)); $str_replace=""; $block_replace="";
foreach($values as $subarr) { $str_replace=$str_block; while ( list( $key, $val ) = each( $subarr ) ) { $str_replace=str_replace("{".$key."}",$val,$str_replace); } $block_replace.=$str_replace; } $this->content=ereg_replace ("{".$block_name."}.*{/".$block_name."}",$block_replace,$this->content); } else $this->content=ereg_replace ("{".$block_name."}.*{/".$block_name."}","none",$this->content); }
//输出模板内容 function Show() { echo $this->content; } }?>以下是一个演示用的模板文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>{title}</title><link href="{cssfile}" rel="stylesheet" type="text/css" /><meta http-equiv='Cache-Control' content='max-age=0'/><meta http-equiv='Cache-Control' content='no-cache' forua='true'/></head><body bgcolor="{bgcolor}"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr width="100%"> <td align="center"> <img src="{top_logo}" /> </td> </tr> <tr width="100%"> <td align="center"> {content} </td> </tr> <tr width="100%"> <td align="center"> <select name="select">{select} <option value="{value}">{name}</option>{/select} </select> </td> </tr> <tr width="100%"> <td align="center"> <img src="{bottom_img}" /> </td> </tr></table>{bottom}</body></html>以下是对模板调用的演示<?php $qt=new QuickTpl("template/pic_view.tpl"); $qt->Assign("title","标题"); //替换{title} $qt->Assign("cssfile","style.css"); //替换{cssfile} $qt->Assign("bgcolor","#EEEEEE"); //替换{bgcolor} $qt->Assign("top_logo","logo.gif"); //替换{top_logo} $select[]=array("name"=>"test1","value"=>"1"); $select[]=array("name"=>"test2","value"=>"2"); $select[]=array("name"=>"test3","value"=>"3"); $qt->BlockAssign("select",$select); $qt->Assign("content","大家Hello~啊!"); $qt->Assign("bottom_img","bottom.gif"); //替换{bottom_img} $qt->ASsign("bottom","copyright ..."); //替换{bottom} $qt->Show(); //显示替换后的模板?>