推荐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 相关文章推荐
珊瑚虫IP库浅析
Feb 15 PHP
PHP添加MySQL数据记录代码
Jun 07 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
php+ajax实现无刷新分页
Nov 18 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 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
Content-type 的说明
2006/10/09 PHP
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
PHP解析RSS的方法
2015/03/05 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
javascript实现当前页导航激活的方法
2015/02/27 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
开源Web应用框架Django图文教程
2017/03/09 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python requests获取网页常用方法解析
2020/02/20 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
仲裁协议书
2014/09/26 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
地道战观后感300字
2015/06/04 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书