1. 站点结构

站点
┗includes
   ┗class.inc
┣templates
   ┗index.htm
   ┣list.htm
   ┗content.htm
┣index.php
┗content.php

2. 库结构

--
-- Database: `test`
-- -- ----------------------------------------------------------
-- Table structure for table `test`
-- CREATE TABLE `test` (`id` smallint(3) NOT NULL auto_increment,`name` varchar(10) NOT NULL default '',`sex` enum('male','female') NOT NULL default 'male',`age` smallint(2) NOT NULL default '0',`email` varchar(20) NOT NULL default '',PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;--
-- Dumping data for table `test`
-- INSERT INTO `test` VALUES (1, 'freshlove', 'male', 28, 'freshlove@gmail.com');
INSERT INTO `test` VALUES (2, 'dinahani', 'female', 29, 'dinahani@gmail.com');
INSERT INTO `test` VALUES (3, 'sam', 'male', 1, 'sam@gmail.com');
INSERT INTO `test` VALUES (4, 'girl', 'female', 0, 'girl@gmail.com');

3.  代码

--------------- class.inc文件 --------

<?php
class db{  private $host; private $user; private $pwd; function __construct($host='localhost',$user='root',$pwd='root'){ $this->host = $host; $this->user = $user; $this->pwd = $pwd; } function connect(){ return mysql_connect($this->host,$this->user,$this->pwd); }
} class template{ 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{ foreach($tags as $row) $keys[] = '|{'.$row.'}|';return preg_replace($keys,$vals,$this->source_file);  } }
}
?>

----------------index.htm文件-------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home Page</title>
</head> <body style="font-size:12px"> <table width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000"> <caption>Members List</caption> <tr bgcolor="#ffffff"> <th>Name</th> <th>Sex</th> <th>Age</th> <th>Email</th> </tr> {all_lists} <tr bgcolor="#ffffff"> <td colspan=2>Total: {total_numbers}, Display {per_numbers}/page</td> <td colspan=2 align=right>{page}</td> </tr> <table>
<body>
<html>

------------------list.htm文件-------------------

<tr bgcolor="#ffffff" align="center"> <td><a href="content.php?id={mid}">{name}</a></td><td>{sex}</td><td>{age}</td><td>{email}</td>
</tr>

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home Page</title>
</head> <body style="font-size:12px"> <table width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000"> <caption>Member Infos</caption> <tr bgcolor="#ffffff"> <td>Name</td><td>{name}</td></tr> <tr bgcolor="#ffffff"> <td>Sex</td><td>{sex}</td></tr>         <tr bgcolor="#ffffff"> <td>Age</td><td>{age}</td></tr>       <tr bgcolor="#ffffff"> <td>Email</td><td>{email}</td></tr>           <table> <div>{back}</div>
<body>
<html>

----------------index.php文件--------------------------

<?php  include('includes/class.inc');  $tmpl = new template();  $db   = new db();  $con  = $db->connect();  mysql_select_db('test',$con);  $limit = 20; //每页显示行数  $p = ($_GET['p']) ? $_GET['p'] : 1;  //当前页号  /***** 生成列表开始 *****/  $lists = '';  $tmpl->get_file('templates/list.htm');  $tags = array('mid','name','sex','age','email');  //应与表字段同顺序 $result = mysql_query('select * from test order by id desc limit '.($p-1)*$limit.','.$limit);  while($row = mysql_fetch_row($result)) $lists .= $tmpl->parse($tags,$row);  /***** 生成列表完成, 分页开始 *****/  $tmpl->get_file('templates/index.htm');  $total = @mysql_result(mysql_query('select count(id) from test'),0);  //总记录数  $ps = ceil($total/$limit);   //总页数  $pagination = 'First Page ';  if($p>1) $pagination .= '';  else $pagination .= '';  $pagination .= 'Prev ';  if($p<$ps) $pagination .= '';  else $pagination .= '';  $pagination .= 'Next Last Page ';  /***** 分页完成, 生成页面开始 *****/  $tags = array('all_lists','total_numbers','per_numbers','page');  $vals = array($lists,$total,$limit,$pagination);  echo $tmpl->parse($tags,$vals);
?> 

---------------- content.php文件 ---------------

<?php include('includes/class.inc'); $tmpl = new template(); $db   = new db(); $con  = $db->connect(); mysql_select_db('test',$con); $tmpl->get_file('templates/content.htm'); $rs = mysql_query('select * from test where id='.$_GET['id']); $row=@mysql_fetch_row($rs); unset($row[0]); //去掉表中读出的多余字段,对齐替换项,或在SELECT语句中列表字段$tags = array('name','sex','age','email','back');  $row[] = '<a href="index.php">Back</a>';echo $tmpl->parse($tags,$row);
?>

finished

php模板技术 实例相关推荐

  1. freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术

    软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...

  2. php模板技术smarty,PHP模板技术Smarty

    基本信息 讲师: 高洛峰 时长:60分钟 集数:9 每集定价:20 元 描述: 如果你正在设计一个交互式的网站,你一定会关注两个主要的问题,就是界面美工和应用程序.在大多数的项目组中,开发一个Web程 ...

  3. 物料描述模板技术解析及10个典型行业实践示例

    导言 为了有效规避企业物料(产品)一物多码.同名异义等诸多数据标准化问题,本文比较系统地介绍物料描述模板技术和方法,确保一物一码.同名同义,实现物料在企业工程设计.供应链物流.生产制造.营销及售后等各 ...

  4. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍 smarty模板技术PHP程序设计中必须掌握的知识,本文结合贵阳网站建设中的案例介绍了基于smarty技术的员工列 ...

  5. 模板技术-freemarker与velocity

    模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选 ...

  6. SpringBoot下的模板技术Thymeleaf详解

    Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发. 模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#.PHP语言体系下也有模板引擎,在Java ...

  7. 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。...

    快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...

  8. python写word模板_Python3操作Office之Word模板技术

    在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...

  9. 【C++深度剖析教程40】使用数值型模板技术计算1+2+3+...+N的值

    上一篇文章学习了数值型模板技术,并利用相关技术,实现了C++的数组类模板.点击文章查看上一篇文章:点击链接查看 本篇文章,继续利用模板技术来解决一个问题. 如果想求1+2+3+-+N的结果,有很多种方 ...

最新文章

  1. java动态代理原理及解析
  2. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波6 - 分段线性变换 - 比特平面分层
  3. 正则表达式的基本语法[转]
  4. 软件质量保证计划_质量保证QA与质量控制QC
  5. 常见面试题思想方法整理
  6. 运维学python哪部分_初入运维的小伙伴,别再问需不需要学Python了
  7. LiquidCrystal-I2C
  8. 几种比较和谐的文字背景颜色搭配
  9. 双基管理 运营_浅谈如何提升双基管理水平
  10. 用python做外贸
  11. 温度反转效应(文末附2018数字IC后端最新校招笔试题目)
  12. Res2Net: A New Multi-scale Backbone Architecture
  13. CSU1256(天朝的单行道)
  14. 七牛云成功通过 CMMI3 认证
  15. MySQL本天早上8点到明早8点_早上8点是什么时辰
  16. 【如何拍出一条好的vlog】素材篇
  17. 秃如其来第一步之安装JDK
  18. 产学交流 | 重庆理工大学计算机科学与工程学院一行到访芝诺数据
  19. CHIP-seq流程学习笔记(3)-比对软件 bowtie2
  20. 103.107.189.XXX机房服务器linux和windows系统的区别:

热门文章

  1. 已知先序和中序得出后序
  2. 16 WM配置-策略-激活存储类型搜索(Storage Type Search)
  3. 9 QM配置-检验计划配置-维护检验类型
  4. 20 WBS要素xxxxxx有不同的存货估价
  5. stm32f407手册_入门篇 | STM32F407库函数开发L按键控制Led灯
  6. 5-1WordCount单词计数
  7. windows如何添加本机dns记录_Mac的100个必备技巧,Windows的功能在Mac能用了
  8. php 文章浏览量 缓存,WordPress缓存文章浏览量访问不自动增加怎么办?WordPress缓存导致文章阅读数点赞数不更新...
  9. LimeSurvey问卷调查管理系统
  10. 苹果CMSv10自适应高权重模板源码