miniSmarty简易Smarty
时间:2021-07-01 10:21:17
帮助过:19人阅读
简易的smarty 对新手理解smarty有帮助 源于itcast韩顺平老师smarty第2、3讲
- class MyMiniSmarty{
-
- public $template_dir = "./templates";
- public $complie_dir = "./templates_c";
- public $tpl_vars = array();
-
- public function assign($tpl_var,$val = NULL){
- if(!empty($tpl_var)){
- $this->tpl_vars[$tpl_var] = $val;
- }
- }
-
- public function display($tpl_file){
- $tpl_file_path = $this->template_dir.$tpl_file;
- $complie_file_path = $this->complie_dir."com_".$tpl_file.".php";
- if (file_exists($tpl_file_path) || filemtime($tpl_file_path) < filemtime($complie_file_path)) {
- $tpl_file_content = file_get_contents($tpl_file_path);
-
- $pattern = array(
- '/\{\s*\$([a-zA-Z0-0_]*)\s*\}/i'
- );
-
- $replace = array(
- 'tpl_vars["$程序猿闯子"] ?>'
- );
-
- $new_content = preg_replace($pattern, $replace, $tpl_file_content);
-
- try {
- file_put_contents($complie_file_path, $new_content);
- } catch (Exception $e) {
- echo $e->getMessage();
- }
- include $complie_file_path;
-
- }else {
- return FALSE;
- }
- }
-
- }
- ?>
|