微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

smarty中常用方法实例总结

本文实例总结了smarty中常用方法分享给大家供大家参考。具体如下:

1. Smarty中foreach的index、iteration的使用

.index包含当前数组索引,从零开始。

index示例

rush:PHP;"> {* The header block is output every five rows *} {* 每五行输出一次头部区块 *} Title

.iteration包含当前循环次数,与index不同,从1开始,每次循环增长1。

iteration和index示例

rush:PHP;"> {* this will output 0|1,1|2,2|3,... etc *} {* 该例将输出0|1,... 等等 *} {foreach from=$myArray item=i name=foo} {$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},{/foreach}

2. smarty中section的嵌套使用

示例1:

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')); {section name='bm' loop=$bookmarks} Name:$bookmarks[bm].name URL:$bookmarks[bm].url {section name='cate' loop=$categories[bm]} $categories[bm][cate].cate_id $categories[bm][cate].cate_name {/section} {/section} ::::

示例2:

rush:PHP;"> $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; } ::::: {section name=loop loop=$lists} {$lists[loop].dateTime} {section name=loop2 loop=$lists[loop]["detailList"]} {$lists[loop]['detailList'][loop2].title} {$lists[loop]["detailList"][loop2].count} {/section} {/section}

3. 其他常用关键字

<{section loop= $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:是否显示

rush:PHP;"> <{section loop=$News}> 新闻编号:<{$News[loop].newID}>
新闻内容:<{$News[loop].newTitle}>
<{sectionelse}> I am sorry <{/section}>

if用法:

rush:PHP;"> {if $list[row].name eq "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,{$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程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐