欢迎大家光顾我的淘宝店:点击进入
1 结构如图:
2 config.php文件内容
<?php
define('HOST', 'localhost');
define('NAME', 'root');
define('PASS', '');
define('DATABASE', 'test');
define('UT', 'utf8');
?>
3 controler.php内容
<?php
include_once('../templateEngine.php');
include_once('../model/userModel.php');
class controler{
private $v=array();
function __construct($v) {
$this->v=$v;
}
function assign(){
if(is_array($this->v)){
return $this->v;
}
return null;
}
}
$model=new userModel();
$records=$model->fetch(3);
foreach($records as $record){
$c=new controler($record);
}
$file='../view/layout.phtml';
$template=new templateEngine($file,$c);
$template->display();
?>
4model.php的内容
<?php
class model{
private $_connection;
function __construct(){
require_once('../config/config.php');
$this->connect();
}
function connect(){
$this->_connection=@mysql_connect(HOST,NAME,PASS)or die("数据库连接失败");
mysql_select_db(DATABASE,$this->_connection);
mysql_query("SET NAMES".UT);
}
function fetch($value,$key=null){
if(is_null($key)){
$key=$this->_primaryKey;
}
$sql="select * from {$this->_tableName} where {$key}='{$value}' ";
$result=mysql_query($sql,$this->_connection);
$row=array();
while($result=@mysql_fetch_array($result)){
$row[]=$result;
}
return $row;
}
function update($keyArray){
$sql=" update {$this->_tableName} set ";
$updates=array();
foreach($keyArray as $column=>$value){
$updates[]=" {$column}='{$value}'";
}
$sql.=implode(',',$updates);
$sql.=" where {$this->_primaryKey}='{$keyArray[$this->_primaryKey]}'";
mysql_query($sql,$this->_connection);
}
}
?>
5 uerModel.php内容
<?php
include_once("model.php");
class userModel extends model{
protected $_tableName='user';
protected $_primaryKey='id';
public function getUserByName($name){
$result=$this->fetch($name,'name');
return $result;
}
}
?>
6 layout.php内容
<!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=gb2312" />
<title>{id}</title>
</head>
<body>
<!-- 导航菜单开始 -->
<div id="topmenu" style='height:24px; font-size:14pt'>
用户名 {name}
<br/>
密码 {pwd}
<br/>
提交时间 {posttime}
</div>
<!-- 导航菜单结束 -->
</body>
</html>
7templateEngine.php内容
<?php
class templateEngine{
private $date=array();
private $c;
function __construct($s,controler $c) {
$this->c=$c;
if(file_exists($s)) $s = file_get_contents($s);//将整个文件读入成一个字符串
$this->find_var($s);
$this->data = explode('<', $s);
}
function display(){
//join是implode()函数的别名
eval('?>' . join('<', $this->data));
}
private function find_var(&$s) {
//用回调函数执行正则表达式的搜索和替换
$s = preg_replace_callback('/\{(\w+)\}/', array($this, 'var_callback'), $s);
}
protected function var_callback($r) {
return "<?php \$value=\$this->c->assign(); echo isset(\$value)?\$value['$r[1]']:''; ?>";
}
}
?>
8 测试结果
用户名 admin
密码 admin
提交时间 1331321331