smarty中常用方法实例总结
本文实例总结了smarty中常用方法。分享给大家供大家参考。具体如下:
1.Smarty中foreach的index、iteration的使用
.index包含当前数组索引,从零开始。
index示例
{*Theheaderblockisoutputeveryfiverows*} {*每五行输出一次头部区块*} <table> {foreachfrom=$itemskey=myIditem=iname=foo} {if$smarty.foreach.foo.index%5==0} <tr><th>Title</th></tr> {/if} <tr><td>{$i.label}</td></tr> {/foreach} </table>
.iteration包含当前循环次数,与index不同,从1开始,每次循环增长1。
iteration和index示例
{*thiswilloutput0|1,1|2,2|3,...etc*} {*该例将输出0|1,1|2,2|3,...等等*} {foreachfrom=$myArrayitem=iname=foo} {$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration}, {/foreach}
2.smarty中section的嵌套使用
示例1:
$bookmarks=array('0'=>array('name'=>'n1','url'=>'url2'),'1'=>array('name'=>'n21','url'=>'url22')); $categories=array('0'=>array('cate_id'=>'n1','cate_name'=>'url2'),'1'=>array('cate_id'=>'n21','cate_name'=>'url22')); {sectionname='bm'loop=$bookmarks} Name:$bookmarks[bm].name URL:$bookmarks[bm].url {sectionname='cate'loop=$categories[bm]} $categories[bm][cate].cate_id $categories[bm][cate].cate_name {/section} {/section} ::::
示例2:
$lists=array(); for(...){ $oneList['dateTime']=date("Y-m-d"); $oneList['detailList']=array(); for(....){ $oneList['detailList'][$j]['count']=$onecout; $oneList['detailList'][$j]['title']=$onetitle; } $lists[]=$oneList; } ::::: {sectionname=looploop=$lists} {$lists[loop].dateTime} {sectionname=loop2loop=$lists[loop]["detailList"]} {$lists[loop]['detailList'][loop2].title} {$lists[loop]["detailList"][loop2].count} {/section} {/section}
3.其他常用关键字
<{sectionloop=$varName[,start=$start,step=$setp,max=$max,$show=true]}>
name:section的名称,不用加$;
$loop:要循环的变量,程度中要使用assign对这个变量进行操作。
$start:开始循环的下标。默认为0;
$step:每次循环下标的增数;
$show:boolean型。决定是否对于这块进行显示。默认为true;
<{section}>的属性;
index:循环下标。默认为0;
index_prev:当前下标的上一个值,默认为-1;
index_next:当前下标的下一个值,默认为1;
first:是否为第一下循环;
last:是否为最后一个循环;
iteration:循环个数;
rownum:当前行号,iteration的别名;
loop:最后一个循环号。Section的循环次数;
show:是否显示;
<{sectionloop=$News}> 新闻编号:<{$News[loop].newID}><br> 新闻内容:<{$News[loop].newTitle}><br> <{sectionelse}> Iamsorry <{/section}>
if用法:
{if$list[row].nameeq"1"} 星期1 {elseif$list[row].name=="2"} 星期2 {else} 默认 {/if}
4.smarty系统变量
{*显示URL中的page值($_GET)http://www.example.com/index.php?page=foo*}
{$smarty.get.page}
{*显示来自一个表单的"page"变量($_POST['page'])*}
{$smarty.post.page}
{*显示COOKIE变量"username"的值($_COOKIE['username'])*}
{$smarty.cookies.username}
{*显示服务器变量"SERVER_NAME"($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
{$smarty.server.PHP_SELF}
{$smarty.server.SCRIPT_NAME}
{*显示系统环境变量"PATH"*}
{$smarty.env.PATH}
{*显示PHP会话变量"id"($_SESSION['id'])*}
{$smarty.session.id}
{*显示变量"username",不论来自get/post/cookies/server/env*}
{$smarty.request.username}
$smarty}保留变量可以被用于访问一些特殊的模板变量,以下是全部页面请求变量。
以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子.例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path,{$smarty.request.username}取得get/post/cookies/server/env的复合变量。
{$smarty.now}变量用于访问当前时间戳.
可以用date_format调节器格式化输出.例如{$smarty.now|date_format:"%Y-%m-%d%H:%M:%S"}
{$smarty.const}
你可以直接访问PHP常量.例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通过{capture}..{/capture}结构截取的输出可以使用{$smarty}变量访问.
{$smarty.config}
{$smarty}变量可以访问已经加载的config变量.
例如{$smarty.config.foo}就可以表示{#foo#}.
{$smarty.section},{$smarty.foreach}
{$smarty}变量可以访问'section'和'foreach'循环的属性.
{$smarty.template}
显示当前被处理的模板的名字.
{$smarty.version}
显示smarty模板的版本
{$smarty.ldelim}
显示左分隔符
{$smarty.rdelim}
显示右分隔符$smarty}保留变量可以被用于访问一些特殊的模板变量,以下是全部页面请求变量。
以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子.例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path,{$smarty.request.username}取得get/post/cookies/server/env的复合变量。
{$smarty.now}变量用于访问当前时间戳.
可以用date_format调节器格式化输出.例如{$smarty.now|date_format:"%Y-%m-%d%H:%M:%S"}
{$smarty.const}
你可以直接访问PHP常量.例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通过{capture}..{/capture}结构截取的输出可以使用{$smarty}变量访问.
{$smarty.config}
{$smarty}变量可以访问已经加载的config变量.
例如{$smarty.config.foo}就可以表示{#foo#}.
{$smarty.section},{$smarty.foreach}
{$smarty}变量可以访问'section'和'foreach'循环的属性.
{$smarty.template}
显示当前被处理的模板的名字.
{$smarty.version}
显示smarty模板的版本
{$smarty.ldelim}
显示左分隔符
{$smarty.rdelim}
显示右分隔符
希望本文所述对大家基于smarty模板的php程序设计有所帮助。