欲在速度和易用(主要指的是美工設計的方便性)之間取得一個平衡點
也想在分離顯示邏輯和分離html代碼之間平衡一下
例如一個論壇首頁(index
代碼:
<?php
require(
//由html生成的php文件的前綴
$tpl_prefix =
//模板文件名
$tpl_index =
$tpl = new Template($tpl_prefix);
$cats = array(
array(
array(
);
$forums = array(
array(
array(
array(
);
if ($cats)
{
if ($tpl
{
$tpl
//替換PHP語句
$tpl
$tpl
$tpl
\nif(\$forum[
$tpl
//生產PHP模板文件
$tpl
}
}
//包含PHP模板文件
include($tpl
?>
對應的html模板文件(l):
代碼:
{block_cat}
<table width=
<tr align=
<td colspan=
</tr>
{block_forum}
<tr bgcolor=
<td valign=
</tr>
{/block_forum}
</table>
<br>
{/block_cat}
經過處理
生成的PHP模板文件(default_index
代碼:
<?foreach($cats as $cat) {?>
<table width=
<tr align=
<td colspan=
</tr>
<?foreach($forums as $forum) {
if($forum[
<tr bgcolor=
<td valign=
</tr>
<?}
}?>
</table>
<br>
<?}?>
default_index
這樣
template
代碼:
<?php
/*********************************************************************************
* 模板類(Template)
* 最後修改時間:
*
*
*
**********************************************************************************/
class Template {
//$this
var $template =
//模板路徑
var $tpl_path =
//模板前綴(風格名稱)
var $tpl_prefix =
//cache路徑(編譯後的路徑)
var $cache_path =
//css文件路徑
var $css_path =
//header文件路徑
var $header_path =
//footer文件路徑
var $footer_path =
/**
* 初始化模板路徑
*/
function Template($root =
{
//模板前綴(風格名稱)
$this
//模板文件路徑
$this
//生成的PHP文件存放路徑
$this
return true;
}
/**
* chk_cache
*/
function chk_cache($tpl_index)
{
$tpl_file = $this
$cache_file = $this
//判斷是否需要更新
if(!file_exists($cache_file))
{
return true;
}
elseif(filemtime($tpl_file) > filemtime($cache_file))
{
return true;
}
}
/**
* 輸出模板文件
*/
function parse_tpl($tpl_index
{
return $this
}
/**
* 加載模板文件
*/
function load_tpl($tpl_index)
{
$tpl_file = $this
$fp = fopen($tpl_file
$this
fclose($fp);
}
/**
* 替換變量
*/
function write_cache($tpl_index)
{
$cache_file = $this
//變量顯示
$this
//界面語言替換
$this
$fp = fopen($cache_file
flock($fp
fwrite($fp
fclose($fp);
}
/**
* 替換block
*/
function assign_block($search
{
$this
}
}
?>
From:http://tw.wingwit.com/Article/program/PHP/201405/30764.html