推荐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 年龄计算函数(精确到天)
Jun 07 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
php获取文章内容第一张图片的方法示例
Jul 03 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP内置函数生成随机数实例
Jan 18 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
德生1994机评
2021/03/02 无线电
PHP数据库操作面向对象的优点
2006/10/09 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
php实现zip文件解压操作
2015/11/03 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
jQuery中调用WebService方法小结
2011/03/28 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
jstree的简单实例
2016/12/01 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
深入了解js原型模式
2019/05/30 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
python文件写入实例分析
2015/04/08 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
经典大学生求职信范文
2014/01/06 职场文书
寄语是什么意思
2014/04/10 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
如何正确理解python装饰器
2021/06/15 Python
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android