這是乙個簡單的用php 實現的模板教程物。
class template
private $path = "." ; #根目錄
private $var;
private $tpldir = "template"; #模板儲存目錄
private $tplext = "tpl"; #模板檔案的字尾名
private $tplid = 0 ; #模板的id號
private $compiledir = "template_c"; #編譯後的php檔案存放目錄
private $iscache=false ; #是否用快取 (預設不啟動)
private $cacheid = 1; #快取檔案id號
private $cachelefttime=3600; #快取有效期 (預設儲存3600秒)
private $cachedir = "cache"; #快取檔案儲存目錄
private $autorefresh = false ; #是否自動重新整理
private $pattern = array(
"/()/i",#包含檔案
"/()/i",#區域性變數
"/()/i",#全域性變數
"/()/i",#foreach 語句
"/()/i", #foreach 結束
"/()/i",
"/()/i",
"/()/i",
"/()/i",
private $replacement = array(
'<?php echo $this->inc_file("\2"); ?>',
"<?php echo $\2;?>",
"<?php global $\2;n echo $\2; ?>",
"<?php foreach($\2 as $\3) ?>",
"<?php if (\2) else if(\2)else ?>",
#建構函式
function __construct($path = "", $tpldir="", $compiledir="",$iscache="",$cachelefttime="",$cachedir="" ,$autorefresh="")
$this->path = $path ? $path : $this->path ;
$this->tpldir = $tpldir ? $tpldir : $this->tpldir ;
$this->compiledir = $compiledir ? $compiledir : $this->compiledir ;
$this->iscache = is_bool($iscache) ? $iscache : $this->iscache ;
$this->cachelefttime = $cachelefttime ? $cachelefttime : $this->cachelefttime ;
$this->cachedir = $cachedir ? $cachedir : $this->cachedir ;
$this->autorefresh = is_bool($autorefresh) ? $autorefresh : $this->autorefresh ;
#相容php4
function template($path = "", $tpldir="", $compiledir="",$iscache="",$cachelefttime="",$cachedir="" ,$autorefresh="")
$this->__construct($path = "", $tpldir="", $compiledir="",$iscache="",$cachelefttime="",$cachedir="" ,$autorefresh="");
function __get($property)
return $this->$property ;
function __set($property,$value)
return $this->$property = $value ;
#給模板中的變數賦值
# $tplval 模板中的變數名
function assign($tplval ,$value="")
if (is_array($tplval))
foreach ($tplval as $key => $val)
if (!empty($key))
$this->var[$key] = $val ;
else " not exist !");
$this->cacheid = $cacheid ? md5($cacheid) : md5($this->cacheid);
$cachefile = $this->path. "/".$this->cachedir."/".$tplfile.$this->cacheid ;
if ($this->check_cache($cachefile,$cachelefttime)) #當快取檔案存在且不過期時直接從快取檔案讀取內容
echo $this->read_file($cachefile);
}else " not exist");
#讀取檔案內容函式
function read_file($filename)
if (!file_exists($filename)) die("read file fail") ;
return file_get_contents($filename);
#內容寫入函式
function write_file($filename,$content,$mode="wb")
$filename = trim($filename);
$content = $content ? stripslashes(trim($content)) : exit();
if (!file_exists($filename))
$array = explode("/",$filename);
$count = count($array);
$path = "";
for ($i = 0 ; $i
if(!file_exists($path .= $array[$i]."/"))
mkdir($path,0777);
$handle = fopen($filename,$mode) ;
fwrite($handle,$content);
fclose($handle);
return true;
# 清除快取
function clear_dir($dir="")
$dir = $this->path."/".$dir;
$handle = opendir($dir);
if (file_exists($dir))
while ($file = readdir($handle))
if ($file !="." && $file != "..")
unlink($dir."/".$file);
closedir($handle);
return true;
else {
return false;
#清除所有快取
function clear_all_cache()
if ($this->clear_dir($this->cachedir) && $this->clear_dir($this->compiledir))
return true;
#檢查快取是否過期
function check_cache($cachefile,$cachelefttime="")
$cachelefttime = $cachelefttime ? $cachelefttime : $this->cachelefttime;
if (!file_exists($cachefile)) return false ;
$time = $this->get_time($cachefile) $cachelefttime ;
if ($time
unlink($cachefile);
return false;
return true;
# 獲取檔案最後編輯時間
function get_time($filename)
if (!file_exists($filename)) return false;
return filemtime($filename);
php格式書寫,PHP書寫格式詳解 必看
從乙個例子開始。echo 你好!將該檔案命名為 test.php 並儲存於 e html 目錄下。你好!在該例子中,我們以 echo 指令輸出乙個字串 你好!從這個例子可以看出 php 檔案或 php 段以 結束,中間為php 每乙個指令集以 符號結束 瀏覽器得到的為 php 解析器執行完 php ...
PHP書寫格式
從乙個例子開始。echo 你好!執行 將該檔案命名為 test.php 並儲存於 e html 目錄下。在瀏覽器位址列裡訪問該 php 檔案 輸出結果如下 你好!在該例子中,我們以 echo 指令輸出乙個字串 你好!從這個例子可以看出 當然,要輸出標準的html 可以把上例完善為 echo 你好!可...
php的書寫模式 PHP書寫格式詳解
摘要 從乙個例子開始。啟動編輯器,建立乙個php檔案並鍵入如下 echo 你好!將該檔案命名為 test.php 並儲存於 e html 目錄下。在瀏覽器位址列裡訪問該 php 檔案 輸出結果如下 你好!在該例子中,我們以 echo 指令輸出乙個字串 你好!從這個例子可以看出 從乙個例子開始。ech...