乙個簡單的模板類(PHP)

2021-12-29 20:43:11 字數 2770 閱讀 4723

有了乙個資料操作類,這樣專案只能簡單地運算元據,但是要達到能夠和美工一起顯示美好的頁面,則需要乙個比較好的模板引擎。與smarty這樣比較龐大的模板引擎相比,我想下面這個則真算得小得多了。

這個模板類是我以前在網上看到的,寫得比較好,所以我就引用了,還不知道作者是誰,這裡就先講一下這個類的原理。

首先,這個類只有乙個簡單的正則解析器。但是基本上可以用到了。如果再能夠在此基礎上擴充套件,我相相信這個小東西很有發展,請有相同愛好的同志們,來加入到強化他的目地。我這就拋下磚。

template.class.php

[html]

<?php  

class template>'; 

//編譯檔案 

private $template_c_file = ''; 

//快取檔案 

private $cache_file = ''; 

//快取時間 

public $cache_time = 0; 

//內建解析器 

private $preg_temp = array( 

'~~i' 

=> '<?php echo $1; ?>', //  

'~~i' 

=> '<?php echo $1[\'$2\']; ?>', //  

'~~i' 

=> '<?php echo $1[\'$2\'][\'$3\']; ?>', //  

'~~i' 

=> '<?php include \$this->_include($2); ?>', // <?php include('inc/top.php'); ?> 

'~~' => '<?php echo $1; ?>', //  

'~~' => '<?php $1; ?>', //  

'~ '<?php echo ', // <?= 

); /** 

*構造器 

*/ public function __construct() 

} /** 

*變數賦值 

*@param $key mixed 鍵名 

*@param $value mixed 值 

*/ public function assign($key , $value = '') 

else 

} /** 

*顯示頁面 

*@param $file string 模板檔名 

*/ public function display($file) 

/** 

*返回快取區內容 

*@param $file string 模板檔名 

*@return $content string 快取內容 

*/ public function fetch($file) 

//以下獲取快取區的內容 

ob_start(); 

@extract($this->vars , extr_overwrite); 

include ($this->template_c_dir . $this->template_c_file); 

$content = ob_get_contents(); 

ob_end_clean(); 

//$this->store_buff($content); 

return $content; 

} /* 

*替換分隔符,以及替換解析器的內容 

*@param $content string 讀取的內容 

*@return $token_content string 替換後的內容 

*/ public function token($content)>' , $token_content); 

} $token_content = preg_replace(array_keys($this->preg_temp), $this->preg_temp , $token_content); 

return $token_content; 

} /* 

*生成儲存 

*@param $content string 讀取的內容 

* public function store_buff($content) 

*/ /* 

*編譯儲存 

*@param $content string 讀取的內容 

* */ 

public function complie($content) 

/* *讀取檔案的內容 

*@param $file string 檔名 

*@return $content string 檔案內容 

*/ public function readfile($file) 

fclose($fp); 

unset($fp); 

return $content; 

} else 

} /* 

*模板巢狀 

*@param $file string 檔名 

*@return string 檔案的絕對位址 

*/ public function _include($file) 

else 

}    www.2cto.com

} ?> 

有了這個模板,你可以忘記那些大型的模板,畢竟你的美工不會在他的切片檔案裡寫那麼多smarty的標記,而只要他切好,你可以直接用,不用去修改images , css ,js 位址了。

作者:tomyjohn

乙個簡單的模板類(PHP)

接上話,有了乙個資料操作類,這樣專案只能簡單地運算元據,但是要達到能夠和美工一起顯示美好的頁面,則需要乙個比較好的模板引擎。與smarty這樣比較龐大的模板引擎相比,我想下面這個則真算得小得多了。這個模板類是我以前在網上看到的,寫得比較好,所以我就引用了,還不知道作者是誰,這裡就先講一下這個類的原理...

乙個簡單的類模板的使用

include include using namespace std template class mylist void print private t a t b template 不可少 void mylist print 宣告和定義都要放在同乙個 檔案中,否則會出現錯誤提示 error l...

乙個簡單的資料池模板類

前不久,因為專案的要求對資料訪問十分頻繁,如果每次都是分配記憶體,然後釋放,會產生大量的記憶體碎片,所以設計了乙個資料池模板類,該類很簡單,主要功能有 1 初始化資料池 2 清空資料池 3 取得一段資料緩衝區 4 釋放一段資料緩衝區 5 取得緩衝區記錄數 如何使用 使用步驟如下 1,建立資料池 cd...