推荐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完整的日历类(CLASS)
Nov 27 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 PHP
Laravel5.1 框架路由基础详解
Jan 04 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
PHP里的中文变量说明
2011/07/23 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
js下用eval生成JSON对象
2010/09/17 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python实现购物程序思路及代码
2017/07/24 Python
python基础练习之几个简单的游戏
2017/11/10 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
旅游管理专业大学生职业规划书
2014/02/27 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
员工试用期自我评价
2014/09/18 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
化工见习报告范文
2014/10/31 职场文书
大学毕业生自我评价
2015/03/02 职场文书
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python