Home >Backend Development >PHP Tutorial >php模板技术 范例

php模板技术 范例

WBOY
WBOYOriginal
2016-06-13 10:59:551127browse

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, [email protected]');INSERT INTO `test` VALUES (2, 'dinahani', 'female', 29, [email protected]');INSERT INTO `test` VALUES (3, 'sam', 'male', 1, [email protected]');INSERT INTO `test` VALUES (4, 'girl', 'female', 0, [email protected]');

?

?

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

?

?

?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Home Page</title>   	
{all_lists}
Members List
Name Sex Age Email
Total: {total_numbers}, Display {per_numbers}/page {page}

?

?

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

?

?

?

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

?

?

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

?

?

?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Home Page</title>   	
Member Infos
Name {name}
Sex {sex}
Age {age}
Email {email}
{back}

?

----------------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($pparse($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']); 	[email protected]_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

?

?

?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn