首页 > 开发 > PHP > 正文

smarty中常用方法实例总结

2024-05-04 23:38:36
字体:
来源:转载
供稿:网友

这篇文章主要介绍了smarty中常用方法,较为详细的分析了smarty模板中较为常用的方法、属性及环境变量等使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

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

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

index示例

 

 
  1. {* The header block is output every five rows *} 
  2. {* 每五行输出一次头部区块 *} 
  3. <table> 
  4. {foreach from=$items key=myId item=i name=foo} 
  5. {if $smarty.foreach.foo.index % 5 == 0} 
  6. <tr><th>Title</th></tr> 
  7. {/if
  8. <tr><td>{$i.label}</td></tr> 
  9. {/foreach} 
  10. </table> 

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

iteration和index示例

 

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

2. smarty中section的嵌套使用

示例1:

 

 
  1. $bookmarks = array('0' => array('name'=> 'n1''url'=>'url2'), '1' => array('name'=> 'n21''url'=>'url22')); 
  2. $categories= array('0' => array('cate_id'=> 'n1''cate_name'=>'url2'), '1' => array('cate_id'=> 'n21''cate_name'=>'url22')); 
  3. {section name='bm' loop=$bookmarks} 
  4. Name:$bookmarks[bm].name 
  5. URL:$bookmarks[bm].url 
  6. {section name='cate' loop=$categories[bm]} 
  7. $categories[bm][cate].cate_id 
  8. $categories[bm][cate].cate_name 
  9. {/section} 
  10. {/section} 
  11. :::: 

示例2:

 

 
  1. $lists = array(); 
  2. for(...){ 
  3. $oneList['dateTime'] = date("Y-m-d"); 
  4. $oneList['detailList'] = array(); 
  5. for(....){ 
  6. $oneList['detailList'][$j]['count'] = $onecout; 
  7. $oneList['detailList'][$j]['title'] = $onetitle; 
  8. $lists[] = $oneList; 
  9. ::::: 
  10. {section name=loop loop=$lists} 
  11. {$lists[loop].dateTime} 
  12. {section name=loop2 loop=$lists[loop]["detailList"]} 
  13. {$lists[loop]['detailList'][loop2].title} 
  14. {$lists[loop]["detailList"][loop2].count} 
  15. {/section} 
  16. {/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:是否显示;

 

 
  1. <{section loop=$News}> 
  2. 新闻编号:<{$News[loop].newID}><br> 
  3. 新闻内容:<{$News[loop].newTitle}><br> 
  4. <{sectionelse}> 
  5. I am sorry 
  6. <{/section}> 

if用法:

 

 
  1. {if $list[row].name eq "1"
  2. 星期1 
  3. {elseif $list[row].name=="2"
  4. 星期2 
  5. {else
  6. 默认 
  7. {/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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表