php模板技术 范例

WBOY
Release: 2016-06-13 10:59:55
Original
1094 people have browsed it

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]');
Copy after login

?

?

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);  		} 	} } ?> 
Copy after login

?

?

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

?

?

?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Home Page</title>   	
Copy after login
Copy after login
{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> 
Copy after login

?

?

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

?

?

?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Home Page</title>   	
Copy after login
Copy after login
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);  ?> 
Copy after login

?

---------------- 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); ?>  
Copy after login

?

?

?

finished

?

?

?

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!