Smarty模板引擎的使用

时间:2022-08-24 09:06:51

Smarty模板引擎的使用

Smarty是PHP中一个基于MVC模式的模板引擎。

Download: http://www.smarty.net/download

 

特点

1、  最快速度的程序开发模板

2、  自定义模板的界定符

3、  可以使用条件判断语句if/elseif/else/endif

4、  内建缓存支持

5、  可以自定义插件.

 

Smarty其实很简单,目前的3.1.14版本中的一个Demo的目录如下:

Smarty模板引擎的使用


只有简单的几个文件夹。

 

Index.php

<?php
/**
* Example Application

* @package Example-application
*/

//载入Smarty的核心类库文件
require('libs/Smarty.class.php');
//实例化一个Smarty
$smarty = new Smarty;



//$smarty->force_compile = true;
//调试模式,会弹出调试框,查看变量值
$smarty->debugging = true;
//缓存模式
$smarty->caching = true;
//缓存时间
$smarty->cache_lifetime = 120;

//定义一个数据的MAP,将数据发送到模板中去
$smarty->assign("Name","Fred Irving Johnathan Bradley Peppergill",true);
$smarty->assign("FirstName",array("John","Mary","James","Henry"));
$smarty->assign("LastName",array("Doe","Smith","Johnson","Case"));
$smarty->assign("Class",array(array("A","B","C","D"), array("E", "F", "G", "H"),
array("I", "J", "K", "L"), array("M", "N", "O", "P")));

$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));

$smarty->assign("option_values", array("NY","NE","KS","IA","OK","TX"));
$smarty->assign("option_output", array("New York","Nebraska","Kansas","Iowa","Oklahoma","Texas"));
$smarty->assign("option_selected", "NE");

//显示一个模板
$smarty->display('index.tpl');
?>



 

使用的都是默认的各个目录文件夹,显示如资源列表图。

当然,还有很多的参数设置,可以参考Smarty.class.php文件,不做详细介绍了。



index.tpl 中的解析


{*这样的是注释*}
{* {} 是界定符 *}

{*载入 配置文件 *}
{config_load file="test.conf" section="setup"}

{* 载入一个文件,并传入一个变量 title = foo *}
{include file="header.tpl" title=foo}

<PRE>

{* ##是从config 文件读取的配置数据 *}
{if #bold#}<b>{/if}
{*
‘|’ 是针对变量的修饰符,
capitalize 首字母大写
upper 全部大写
lower 全部小写
nl2br 将换行符换位<br/>
date_format:"%Y-%M-%D" 格式化时间
replace:"value1":"value2" 替换,使用value2替换value1
dafault 默认值
cat:"characters" 追加字符
.....
*}
Title: {#title#|capitalize}
{if #bold#}</b>{/if}

The current date and time is {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

The value of global assigned variable $SCRIPT_NAME is {$SCRIPT_NAME}

{*
{$smarty.server.SERVER_NAME} 服务器 地址
*}
Example of accessing server environment variable SERVER_NAME: {$smarty.server.SERVER_NAME}

The value of {ldelim}$Name{rdelim} is <b>{$Name}</b>
{*
{ldelim} 左界定符
{rdelim} 右界定符
*}
variable modifier example of {ldelim}$Name|upper{rdelim}

<b>{$Name|upper}</b>


An example of a section loop:

{section name=outer
loop=$FirstName}
{* 没两次 交替 一次*}
{if $smarty.section.outer.index is odd by 2}
{$smarty.section.outer.rownum} . {$FirstName[outer]} {$LastName[outer]}
{else}
{$smarty.section.outer.rownum} * {$FirstName[outer]} {$LastName[outer]}
{/if}
{sectionelse}
none
{/section}

An example of section looped key values:
{* 类似 泛型的枚举 循环*}
{section name=sec1 loop=$contacts}
phone: {$contacts[sec1].phone}<br>
fax: {$contacts[sec1].fax}<br>
cell: {$contacts[sec1].cell}<br>
{/section}
<p>

testing strip tags
{strip}
<table border=0>
<tr>
<td>
<A HREF="{$SCRIPT_NAME}">
<font color="red">This is a test </font>
</A>
</td>
</tr>
</table>
{/strip}

</PRE>

This is an example of the html_select_date function:

{* 时间选择器*}
<form>
{html_select_date start_year=1998 end_year=2010}
</form>

This is an example of the html_select_time function:

<form>
{html_select_time use_24_hours=false}
</form>

This is an example of the html_options function:

{* option 枚举*}
<form>
<select name=states>
{html_options values=$option_values selected=$option_selected output=$option_output}
</select>
</form>

{include file="footer.tpl"}



在服务器上显示的  index.php就显示如下了
Smarty模板引擎的使用


更多的详细介绍,查看官网http://www.smarty.net/docs/zh_CN/