推荐php模板技术[转]


Posted in PHP onJanuary 04, 2007

站点结构

代码:
站点
  ┗includes
       ┗class.inc
  ┣templet
       ┗index.htm
       ┣list.htm
       ┗content.htm
  ┣index.php
  ┗content.php
库结构

代码:
-- 数据库: `test`
-- 表的结构 `test`
CREATE TABLE `test` (
  `id` smallint(3) NOT NULL auto_increment,
  `name` varchar(10) NOT NULL default '',
  `sex` enum('男','女') NOT NULL default '男',
  `age` smallint(2) NOT NULL default '0',
  `email` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
--------------- class.inc文件 -------- 

<?php    
 class mycon{     
    private $myhost;    
    private $myuser;    
    private $mypwd;    
    function mycon($host="localhost",$user="root",$pwd=""){    
      $this->myhost = $host;    
      $this->myuser = $user;    
      $this->mypwd = $pwd;    
    }    
    function connect(){    
      return mysql_connect($this->myhost,$this->myuser,$this->mypwd);    
    }    
  }      class templet{    
     private $source_file;    
     function get_file($filename){    
         $this->source_file = file_get_contents($filename);    
     }    
     function parse($tags,$vals){    
         if(!is_array($tags)){    
            return preg_replace("|{".$tags."}|",$vals,$this->source_file);     
         }else{    
            $an = count($tags);    
            for($i=0;$i<$an;$i++){    
               $tags[$i] = "|{".$tags[$i]."}|";    
            }    
           return preg_replace($tags,$vals,$this->source_file);     
        }    
     }    
  }    
?>
 

----------------index.htm文件------------------- 

<HTML>    
<HEAD>    
<TITLE>首页</TITLE>    
</HEAD>    
<BODY style="font-size:12px">    
<TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="1" bgcolor=#000000 style="font-size:12px">    
    <caption>成员列表</caption>    
    <TR bgcolor="#ffffff" align=center>    
      <TD width=25%>姓名</TD>    
      <TD width=25%>性别</TD>    
      <TD width=25%>年龄</TD>    
      <TD width=25%>email</TD>    
    </TR>    
    {所有列表}    
    <TR bgcolor="#ffffff">    
      <TD colspan=2>共有{总条数}条记录,显示{每页条数}条/页</TD>    
      <TD colspan=2 align=right>{分页}</TD>    
    </TR>    
</TABLE>    
</BODY>    
</HTML> 

------------------list.htm文件------------------- 

<TR bgcolor="#ffffff" align=center>    
  <TD><a href="content.php?id={成员ID}">{姓名}</a></TD><TD>{性别}</TD><TD>{年龄}</TD><TD>{email}</TD>    
</TR>
 

-------------------content.htm文件----------------------- 

<HTML>    
<HEAD>    
<TITLE>成员信息</TITLE>    
</HEAD>    
<BODY style="font-size:12px">    
<TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="1" bgcolor=#000000 style="font-size:12px">    
    <caption>成员信息</caption>    
    <TR bgcolor="#ffffff">    
      <TD width=60>姓名</TD><TD>{姓名}</TD></TR>    
    <TR bgcolor="#ffffff">    
      <TD>性别</TD><TD>{性别}</TD></TR>    
    <TR bgcolor="#ffffff">    
      <TD>年龄</TD><TD>{年龄}</TD></TR>    
    <TR bgcolor="#ffffff">    
      <TD>email</TD><TD>{email}</TD></TR>    
</TABLE>    
</BODY>
 

----------------index.php文件-------------------------- 

<?php     
  include("includes/class.inc");     
  $tmpl =new templet;     
  $mycon =new mycon;     
  $con = $mycon->connect();     
  mysql_select_db("test",$con);     
  $lim = 20; //每页显示行数     
  $p = ($_GET[p]) ? $_GET[p] : 1;  //当前页号       /***** 生成列表开始 *****/     
  $lists = "";     
  $tmpl->get_file("templet/list.htm");     
  $tags = array("成员ID","姓名","性别","年龄","email");  //应与表字段同顺序     
  $rs = mysql_query("select * from test order by id desc limit ".($p-1)*$lim.",$lim");     
  while($row=mysql_fetch_row($rs)){     
     $lists .= $tmpl->parse($tags,$row);     
  }     
   /***** 生成列表完成, 分页开始 *****/     
  $tmpl->get_file("templet/index.htm");     
  $rn = @mysql_result(mysql_query("select count(id) from test"),0);  //总记录数     
  $ps = ceil($rn/$lim);   //总页数     
  $pagination = "<a href='?p=1'>首页</a> ";     
  if($p>1) $pagination .= "<a href='?p=".($p-1)."'>";     
  else $pagination .= "<font color='#777777'>";     
  $pagination .= "上一页</font></a> ";     
  if($p<$ps) $pagination .= "<a href='?p=".($p+1)."'>";     
  else $pagination .= "<font color='#777777'>";     
  $pagination .= "下一页</font></a> <a href='?p={$ps}'>尾页</a>  ";     
   /***** 分页完成, 生成页面开始 *****/     
   $tags = array("所有列表","总条数","每页条数","分页");     
   $vals = array($lists,$rn,$lim,$pagination);     
   echo $tmpl->parse($tags,$vals);     
?> 

---------------- content.php文件 --------------- 

<?php    
  include("includes/class.inc");    
  $tmpl =new templet;    
  $mycon =new mycon;    
  $con = $mycon->connect();    
  mysql_select_db("test",$con);    
  $tmpl->get_file("templet/content.htm");    
  $rs = mysql_query("select * from test where id=$_GET[id]");    
  $row=@mysql_fetch_row($rs);    
  unset($row[0]); //去掉表中读出的多余字段,对齐替换项,或在SELECT语句中列表字段     
  $tags = array("姓名","性别","年龄","email");     
  echo $tmpl->parse($tags,$row);    
?> 

PHP 相关文章推荐
一个php作的文本留言本的例子(一)
Oct 09 PHP
一篇不错的PHP基础学习笔记
Mar 18 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
推荐个功能齐全的发送PHP邮件类
Jan 03 #PHP
php和js交互一例-PHP教程,PHP应用
Jan 03 #PHP
URL Rewrite的设置方法
Jan 02 #PHP
DISCUZ 分页代码
Jan 02 #PHP
帖几个PHP的无限分类实现想法~
Jan 02 #PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 #PHP
分享PHP入门的学习方法
Jan 02 #PHP
You might like
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
javascript 写类方式之八
2009/07/05 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
js实现微信聊天效果
2020/08/09 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
pandas分组聚合详解
2020/04/10 Python
高考考python编程是真的吗
2020/07/20 Python
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
法制报告会主持词
2014/04/02 职场文书
安全保证书范文
2014/04/29 职场文书
个人收入证明范本
2014/09/18 职场文书
世界文化遗产导游词
2015/02/13 职场文书
社会实践心得体会范文
2016/01/14 职场文书