• 技术文章 >php教程 >php手册

    smarty中常用方法实例总结

    2016-06-06 19:48:36原创427

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

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

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

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

    index示例

    {* The header block is output every five rows *} {* 每五行输出一次头部区块 *}

    {foreach from=$items key=myId item=i name=foo} {if $smarty.foreach.foo.index % 5 == 0} {/if} {/foreach}
    Title
    {$i.label}

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

    iteration和index示例

    {* this will output 0|1, 1|2, 2|3, ... etc *} {* 该例将输出0|1, 1|2, 2|3, ... 等等 *} {foreach from=$myArray item=i name=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')); {section loop=$bookmarks} Name:$bookmarks[bm].name URL:$bookmarks[bm].url {section 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; } ::::: {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:是否显示;

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

    if用法:

    {if $list[row].name eq "1"} 星期1 {elseif $list[row].name=="2"} 星期2 {else} 默认 {/if}

    4. smarty 系统变量

    {* 显示URL中的page值($_GET)?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}

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:smarty 常用方法
    上一篇:PHP模拟asp.net的StringBuilder类实现方法 下一篇:6个超实用的PHP代码片段
    PHP编程就业班

    相关文章推荐

    • 动态网页技术PHP程序字符串处理函数• 探秘PHP 5的对象重载技术(1)• PHP学习之输出字符串(echo,print,printf,print_r和var_dump)• 实例(Smarty+FCKeditor新闻系统)• 无数据库的详细域名查询程序PHP版(1)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网