php模板技术 实例
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模板技术 实例相关推荐
- freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术
软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...
- php模板技术smarty,PHP模板技术Smarty
基本信息 讲师: 高洛峰 时长:60分钟 集数:9 每集定价:20 元 描述: 如果你正在设计一个交互式的网站,你一定会关注两个主要的问题,就是界面美工和应用程序.在大多数的项目组中,开发一个Web程 ...
- 物料描述模板技术解析及10个典型行业实践示例
导言 为了有效规避企业物料(产品)一物多码.同名异义等诸多数据标准化问题,本文比较系统地介绍物料描述模板技术和方法,确保一物一码.同名同义,实现物料在企业工程设计.供应链物流.生产制造.营销及售后等各 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍 smarty模板技术PHP程序设计中必须掌握的知识,本文结合贵阳网站建设中的案例介绍了基于smarty技术的员工列 ...
- 模板技术-freemarker与velocity
模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选 ...
- SpringBoot下的模板技术Thymeleaf详解
Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发. 模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#.PHP语言体系下也有模板引擎,在Java ...
- 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。...
快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...
- python写word模板_Python3操作Office之Word模板技术
在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...
- 【C++深度剖析教程40】使用数值型模板技术计算1+2+3+...+N的值
上一篇文章学习了数值型模板技术,并利用相关技术,实现了C++的数组类模板.点击文章查看上一篇文章:点击链接查看 本篇文章,继续利用模板技术来解决一个问题. 如果想求1+2+3+-+N的结果,有很多种方 ...
最新文章
- java动态代理原理及解析
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波6 - 分段线性变换 - 比特平面分层
- 正则表达式的基本语法[转]
- 软件质量保证计划_质量保证QA与质量控制QC
- 常见面试题思想方法整理
- 运维学python哪部分_初入运维的小伙伴,别再问需不需要学Python了
- LiquidCrystal-I2C
- 几种比较和谐的文字背景颜色搭配
- 双基管理 运营_浅谈如何提升双基管理水平
- 用python做外贸
- 温度反转效应(文末附2018数字IC后端最新校招笔试题目)
- Res2Net: A New Multi-scale Backbone Architecture
- CSU1256(天朝的单行道)
- 七牛云成功通过 CMMI3 认证
- MySQL本天早上8点到明早8点_早上8点是什么时辰
- 【如何拍出一条好的vlog】素材篇
- 秃如其来第一步之安装JDK
- 产学交流 | 重庆理工大学计算机科学与工程学院一行到访芝诺数据
- CHIP-seq流程学习笔记(3)-比对软件 bowtie2
- 103.107.189.XXX机房服务器linux和windows系统的区别:
热门文章
- 已知先序和中序得出后序
- 16 WM配置-策略-激活存储类型搜索(Storage Type Search)
- 9 QM配置-检验计划配置-维护检验类型
- 20 WBS要素xxxxxx有不同的存货估价
- stm32f407手册_入门篇 | STM32F407库函数开发L按键控制Led灯
- 5-1WordCount单词计数
- windows如何添加本机dns记录_Mac的100个必备技巧,Windows的功能在Mac能用了
- php 文章浏览量 缓存,WordPress缓存文章浏览量访问不自动增加怎么办?WordPress缓存导致文章阅读数点赞数不更新...
- LimeSurvey问卷调查管理系统
- 苹果CMSv10自适应高权重模板源码