php的简单模板类

原创 2004年04月15日 17:40:00

我就喜欢简单:)

<?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();  //显示替换后的模板
?>

php 编写一个简单的模板引擎

php web开发中广泛采取mvc的设计模式,controller传递给view层的数据,必须通过模板引擎才能解析出来。实现一个简单的仅仅包含if,foreach标签,解析$foo变量的模板引擎。...
  • u012371137
  • u012371137
  • 2016年07月22日 17:07
  • 2112

PHP实例一之简单的留言板

注:参考兄弟连教学视频写的一个简单的留言板模块,获得更多内容请参考我的博文。 示例:文本式留言板 需要的知识点:   1.文件操作:    file_put_contents();文件的写入函数   ...
  • u012675743
  • u012675743
  • 2014年11月29日 00:09
  • 13172

php+mysql 最简单的留言板

学完了记得动手操作。
  • think_ycx
  • think_ycx
  • 2015年08月13日 01:07
  • 1924

一个简单的模板类(PHP)

接上话,有了一个数据操作类,这样项目只能简单地操作数据,但是要达到能够和美工一起显示美好的页面,则需要一个比较好的模板引擎。与SMARTY这样比较庞大的模板引擎相比,我想下面这个则真算得小得多了。 ...
  • tomyjohn
  • tomyjohn
  • 2012年06月20日 15:28
  • 6313

php仿照smarty模板类

  • 2012年04月27日 23:28
  • 3KB
  • 下载

双向链表模板类简单实现

  • 2013年12月12日 22:19
  • 1KB
  • 下载

ASP Crazy 模版操作类(最简单的模板类、仅提供交流)

  • 2009年12月30日 20:06
  • 20KB
  • 下载

C++ 模板类 简单试用

  • 2014年01月26日 20:28
  • 210KB
  • 下载

简单的C++模板类工厂

  • 2010年04月03日 09:48
  • 1KB
  • 下载

独创的PHP模板类

曾经开发PHP项目时候,需要实现页面jingtai
  • tiberx
  • tiberx
  • 2014年04月07日 10:06
  • 589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php的简单模板类
举报原因:
原因补充:

(最多只允许输入30个字)