PHP中SmartTemplate引擎学习

本文介绍了PHP中的SmartTemplate引擎,这是一个将界面与代码分离的框架。通过简单几步,包括下载源码、设置目录、创建模板和PHP文件,展示了如何使用SmartTemplate进行模板替换、条件判断等基本操作。
摘要由CSDN通过智能技术生成

最近毕业了,公司一直还不通知入职时间,真是坑爹啊。之前毕设使用的事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代码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<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代码:

<?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();
?>


获得的页面效果如下图:



获得的页面源码就不贴在这里了,大家可以下载这个例子试试。

Demo下载

P.S.本文主要参考

http://www.cnblogs.com/hsrzyn/articles/1612635.html

http://www.mansonchor.com/blog/blog_detail_12.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值