jtemplate.class.php
001<?php
002/**
003 * @author jiawei
004 * @completed in 2012-6-29 0:23
005 */
006class jtemplate
024 /**
025 * 顯示模板
026 * @param string $filename 模板檔名
027 */
028 public function display($filename)
036 extract($this->templatevar);
037 include $compilefilename;
038 }else
041 }
042 /**
043 * 獲取編譯檔名
044 */
045 private function get_compile_file()
050 /**
051 * 編譯
052 */
053 private function compile()
058 fclose($filehandle);
059 $filecontent = $this->template_replace($filecontent);
060 //$compilefile = $this->get_compile_file($filename);
061 $filehandle = @fopen($this->templatecompiledir.'/'.$this->file_safe_name().'.php','w');
062 if($filehandle)else
068 }
069 /**
070 * 模板傳值
071 * @param string $valuename 模板中使用的變數名
072 * @param $value 變數值
073 */
074 public function assign($valuename,$value)
077
078 /**
079 * 模板正則替換
080 * @param string $content 替換內容
081 * @return string 替換過後的內容
082 */
083 private function template_replace($content)/s',
094 '/\/s',
095 '/\/s',
096 '/\/s',
097 '/\/s',
098 '/\/s',
099 );
100
101 $changearray = array(
102 '<?php if(!empty($$1)&&is_array($$1))if(!empty($countloop))$countloop--;}else?>',
105 '<?php }if(!empty($countloop))$countloop--;}?>',
106 '<?php if($1)?>',
108 '<?php }elseif($1)else
119 /**
120 * 刪除舊檔案
121 */
122 private function del_old_file()
129 }
130 /**
131 * 編譯檔名安全處理方法
132 * @return string 返回編譯檔名
133 */
134 private function file_safe_name()
138
139 /**
140 * 錯誤輸出函式
141 * @param string $content 錯誤輸出資訊
142 */
143 private function error($content)
152}
153?>
index.php
view sourceprint?
01<?php
02/**
03 * @author jiawei
04 */
05include_once 'jtemplate/jtemplate.class.php';
06$template = new jtemplate('template','compile');
07$a = array('a','b','c','d');
08define('_core_','aaa');
09$template->assign('a', $a);
10$template->display('index.html');
11?>
作者:袁家偉
乙個自己寫的PHP模板引擎
這是乙個自己寫的編譯型的模板引擎 不包括快取部分 貼上 有問題可以隨時跟帖。單檔案版 jtemplate.class.php templatedir templatedir this templatecompiledir templatecompliedir 顯示模板方法 param string ...
寫了乙個簡單實用的PHP模板引擎
php模板引擎很多,但要麼很龐大,要麼效率很低,如果只是要實現php 與程式分離,就只要乙個簡單的模板引擎就行了。今天抽空寫了乙個。xt.class.php created on 2011 10 08 author xyl this is template engine for your site ...
DIY乙個前端模板引擎 一
下面是我定義好的html 模板字串。var template span div 這是我的資料 var scope 好了,現在怎麼把資料渲染到模板上面呢?很自然的想到 正規表示式 第一步 可以使用字串的replace 函式。這是正則 var regex g 好了,現在編寫乙個函式,我把我的模板引擎就叫...