最近毕业了,公司一直还不通知入职时间,真是坑爹啊。之前毕设使用的事ASP.NET开发网页,算是对网页开发有一定的了解,身边也有好多同学使用的是PHP。相对于ASP.NET来说PHP的一大特点就是开源。所以各个公司的开发平台对PHP的支持都比较好,所以也就想稍微了解下PHP的网页开发。这几天在家学习一个从网上下载的PHP实现的新闻系统的源码。其中使用到了SmartTemplate引擎,感觉这个框架非常实用,于是就从网上找了一些关于SmartTemplate引擎的资料学习了下,在此记录下SmartTemplate引擎最简单的使用方法,以便以后查看,顺便与大家一起分享。
SmartTemplate引擎最大的特点就是将网页的界面与PHP代码进行了分离。这个好像是叫做MVC的思想吧,具体就不细说了,本文着重说明如何使用这一框架。
第一步:下载SmartTemplate引擎源代码,也就是class.smarttemplate.php class.smarttemplatedebugger.php class.smarttemplateparser.php这三个文件。在网上找了半天没找到官方下载地址,大家可以从我上传的demo中获取,下载地址在文章最后给出。
第二步:将上面上个文件拷贝到工程目录下,并在目录中新建一个tmp的子目录。打开class.smarttemplate.php将其中的$temp_dir 和$cache_dir都给出初始值为'./tmp/。
第三步:新建html模板和php文件。这个例子中举出了smartTemplate的四个用法,包括了最简单的替换、有重复内容的替换、IF和IF-ELSEIF-ELSE。
html模板页a.html代码:
<div style="margin-bottom:10px;color:red;">这个例子是smartTemplate中最简单的替换</div>
<table border="1">
<tr>
<td>姓名</td>
<td>{name}</td>
</tr>
<tr>
<td>Email</td>
<td>{Email}</td>
</tr>
</table>
<hr>
<div style="margin-bottom:10px;color:red;">这个例子是smartTemplate中有重复内容,使用BEGIN/END的替换</div>
<table border="1">
<!-- BEGIN INFO -->
<tr >
<td >姓名</td>
<td>{name}</td>
<td >Email</td>
<td>{Email}</td>
<td >Age</td>
<td>{Age}</td>
<td >QQ</td>
<td>{QQ}</td>
</tr>
<!-- END INFO -->
</table>
<hr>
<div style="margin-bottom:10px;color:red;">这个例子说明引擎中IF的使用</div>
<!-- IF username --> <h3> Welcome, {username} </h3> <!-- ENDIF -->
<!-- IF picture --> <img class="border_img" src="http://www.mansonchor.com/images/img_loading.gif" data-original="{picture}"> <!-- ENDIF picture -->
<!-- IF usergroup="ADMIN" -->
<a href="admin.php"> ADMIN Login </a>
<!-- ENDIF usergroup -->
<hr>
<div style="margin-bottom:10px;color:red;">这个例子说明引擎中IF-ELSEIF的使用</div>
<!-- IF usergroup1="ADMIN" -->
<a href="admin.php"> 管理员登陆 </a>
<!-- ELSEIF usergroup1="SUPPORT" -->
<a href="support.php"> 帮助人员登陆</a>
<!-- ELSEIF usergroup1 -->
<a href="other.php"> 普通方式登陆 </a>
<!-- ELSE -->
You don't even have a usergroup!
<!-- ENDIF -->
PHP页面a.php代码:
//包含class.smarttemplate.php文件
require("class.smarttemplate.php");
//框架路径设置
//实例化SmartTemplate的一个对象,并与a.html关联
$page = new SmartTemplate("a.html");
$page->assign("name","小鱼");
$page->assign("Email","xiaoyu@qq.com");
$INFOS = array(
array("name"=>"张三","Email"=>"zhangsan@qq.com","Age"=>"12","QQ"=>"1111"),
array("name"=>"里斯","Email"=>"lisi@qq.com","Age"=>"12","QQ"=>"1111"),
array("name"=>"王五","Email"=>"wangwu@qq.com","Age"=>"12","QQ"=>"1111"),
array("name"=>"赵六","Email"=>"zhaoliu@qq.com","Age"=>"12","QQ"=>"1111")
);
$page->assign("INFO",$INFOS);
$page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->assign( 'usergroup1', 'ADMIN' );
//输出
$page->output();
?>
获得的页面效果如下图:
获得的页面源码就不贴在这里了,大家可以下载这个例子试试。
P.S.本文主要参考