php模板技术 范例

WBOY
Freigeben: 2016-06-13 13:03:30
Original
895 Leute haben es durchsucht

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');

Nach dem Login kopieren

?

?

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);  
		} 
	} 
} 
?> 
Nach dem Login kopieren

?

?

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

?

?

?



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home Page</title> 
 

 
	
Nach dem Login kopieren
Nach dem Login kopieren
{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> 
Nach dem Login kopieren

?

?

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

?

?

?



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home Page</title> 
 

 
	
Nach dem Login kopieren
Nach dem Login kopieren
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);  
?> 

Nach dem Login kopieren

?

---------------- 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); 
?>  
Nach dem Login kopieren

?

?

?

finished

?

?

?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!