php的模板,例如smarty等,都是采用模板内置的标记语言进行模板变量等操作。其目的是为了让开发模板的美工不需要太大的学习成本,可是采用这种方式有几个不足2点:
1,现在做页面的美工基本上都是直接把页面给程序处理成模板,这样的话,程序员就要承担模板这部分的学习成本
2,smarty中的模板最终也是编译成一个php html混排的文件,如此的话,模板将在编译上花费一部分的系统资源,其实php本身就是一个非常好的模板语言,何必在模板程序里用正则转换模板的标记语言呢!
从功能上来说,采用纯php来做模板语言的话,也非常容易实现页面模板与程序的分离,同时页面模板里的处理能力也大大的加强
下面是临时写的一个简易的模板类,没有其它功能,纯粹用于页面与程序的分离!
首页index.php文件
PHP代码
- <?php
- header("content-type:text/html; charset=utf-8");
- define(‘TPLDIR’,dirname(__FILE__).‘/tpl/’);
- $template=new template;
- $template->a=‘这里是模板输出变量测试!’;
- $template->tpl(‘a.html’);
- //模板类
- class template
- {
- function tpl($tplname)
- {
- $tpl=TPLDIR.$tplname;
- if(file_exists($tpl)){
- include($tpl);
- }else{
- echo ‘模板’.$tplname.‘不存在’;
- }
- unset($tpl);
- }
- }
- ?>
模板文件 tpl/a.html
XML/HTML代码
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <HTML>
- <HEAD>
- <TITLE> 最简单的php模板 </TITLE>
- <META NAME="Generator" CONTENT="EditPlus">
- <META NAME="Author" CONTENT="">
- <META NAME="Keywords" CONTENT="">
- <META NAME="Description" CONTENT="">
- </HEAD>
- <BODY>
- 从模板里输入变量a: <?php echo $this->a ?>
- <br>
- 从1加到10000等于:
- <?php
- $s=0;
- for($i=1;$i<=10000;$i++){
- $s+=$i;
- }
- echo $s;
- ?>
- </BODY>
- </HTML>
楼主这php代码很帅阿~!
http://www.banhuatxt.cn
大哥~你终于想通了~~
呵呵~为了不影响美工的设计图~~可以用
[quote=MoHock]大哥~你终于想通了~~
呵呵~为了不影响美工的设计图~~可以用[/quote]
是哦。。呵呵。。