php模板技术

站点结构

代码:
站点
  ┗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文件 --------

CODE:

<? 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文件-------------------

CODE:

< 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文件-------------------

CODE:

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


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

CODE:

< 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文件--------------------------

CODE:

<? 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文件 ---------------

CODE:

<? 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 ); 
?> 
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。mengwzy#qq.com https://blog.csdn.net/nnsword/article/details/5621712
个人分类: PHP学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭