php的简单模板类

    技术2022-05-11  147

    我就喜欢简单:)<?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();  //显示替换后的模板?>


    最新回复(0)