本文实例分析了Smarty模板常见的简单应用。分享给大家供大家参考,具体如下:
首先要将smarty这个类包含进来:
1
|
include_once '../libs/Smarty.class.php' ;
|
然后创一个Smarty对象:
1
|
$smarty = new Smarty;
|
可以自定义Smarty 的开始结束符,默认为{ }
1
2
|
$smarty ->left_delimiter = '<<' ; //左符号为 <<
$smarty ->right_delimiter= '>>' ; //右符号 为 >>
|
最重要方法的好像是assign,如:
1
2
|
$smarty ->assign( 'test' , $te );
//将$test的值付给test,在模板页tpl中显示用{$test}
|
又如$arr=array(1,2,3);赋值仍是这样:
1
|
$smarty ->assign( 'arr' , $arr );
|
但在模板页显示时要借助foreach 或 section,foreach 用法如下:
1
2
3
4
|
{ foreach item=item from= $arr key=ke name=foe}
$item
{/ foreach }
//此处的$item相当于$arr[$ke],foreach序列化{$smarty.foreach.foe.iteration}
|
而section 用法如下:
1
2
3
4
|
{section name= 'test' loop= $arr }
{ $smarty .section.name.iteration} //使输出序列化,序号从1开始,index从0开始
{ $arr [test]}
{/section}
|
最后最重要的一步操作千万不要忘记那就是:
1
|
$smarty ->display( 'test.tpl' );
|
下面说一些常用东西怎么样的在模板上显示
1.连接操作:
1
|
我叫{ $str1 |cat: "李白" }; //输出结果就是:我叫 $str1 李白
|
2.当前日期:
1
|
{ $str2 |rdate_format: "Y%-m%-d%" } //输出结果格式化$str2日期,形如0000-00-00
|
3.缩进:
1
|
{ $str3 |indent:8: "*" } //$str3前缩进8个* 默认缩进的是空格
|
4.大小写:
1
2
|
{ $str4 |lower} //$str4的小写形式
{ $str4 |upper} //$str4的大写形式
|
过滤:
1
2
|
{ $url |escape: "url" } //对$url相关特殊字符进行替换
<tr bgcolor= '{cycle values="#EBEBEB,#ACABAB"}' > //tr背景交替 颜色分别为#EBEBEB,#ACABAB
|
匹配替换:
1
|
{ $str |regex_replace: "~[0-9]~" : "asd" } //如果$str匹配[0-9]输出asd
|
替换
1
|
{ $str |replace: "net" : "com" } //将$str中的net全部替换成com
|
包含头模板文件:
1
|
{ include file= "top.tpl" }
|
调用time.inc.php里面的函数:
1
2
3
|
{insert name= "getCurrentTime" assign= "current_time" script= "time.inc.php" }
当前时间为{ $current_time };
{/insert}
|
其中time.inc.php内容如下:
1
2
3
4
5
6
|
<?php
function smarty_insert_getCurrentTime
{
return gmdate ( 'l,j F Y g:i a T' ); //获得当前日期及时间
}
?>
|
联系:
1
2
|
mailto{
mailto address= "contact@smartyllc.com" subject= "Smarty LLC Contact" encode= "javascript" }
|
载入test.conf:
1
2
|
{conf_load file= "test.conf" section= "test" }
{#tt#}
|
test.conf内容如下:
1
2
|
[test]
tt = 12122
|
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。