查看: 5016|回复: 0
打印 上一主题 下一主题

php模板技术

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-5 15:36:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
站点结构

代码:
站点
  ┗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> &nbsp;";  

   /***** 分页完成, 生成页面开始 *****/  
   $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);
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表