smarty 常用系统变量,变量调节器,循环详解

  1. //格式化时间  
  2. {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}  
  3. //截断字符串超长加...,默认截取80字符长度  
  4. {$title|truncate:11:"..."}  
  5. //首字母大写  
  6. {$english_word|capitalize}  
  7. //每个单词的首字母大写  
  8. {$english_word|capitalize:true}  
  9. //upper lower  
  10. {$name|lower}  
  11. {$name|upper}  
  12. //HTML特殊文字处理  
  13. {$english_word|escape}  
  14. {$english_word|escape:html}  
  15. {$english_word|escape:htmlall}  
  16. {$english_word|escape:url}  
  17. {$english_word|escape:quotes}  
  18. //多长后字符串换行,默认换行长度为80  
  19. {$english_word|wordwrap:10}  
  20. //分隔字符串  
  21. {$english_word|spacify:"||"}  
  22. //正则表达式替换字符  
  23. {$title|regex_replace:"/hello/":"你好"}  
  24. {$title|replace:"hello":"你好"}  
  25. //如果变量不存在就输出默认值  
  26. {$title2|default:" "}  
  27. //获取PHP常量   
  28. //define('ROOT_URL','www.google.com');   
  29. {$smarty.const.ROOT_URL}   
  30. //获取GET值   
  31. {$smarty.get.user_id}   
  32. //获取URL路径   
  33. {$smarty.server.REQUEST_URI}   
  34. //判断Array大于0  
  35. {if $arr|@count > 0}或者{if count($arr) > 0}  



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

 

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

index示例

{* The header block is output every five rows *}
{* 每五行输出一次头部区块 *}
<table>
{foreach from=$items key=myId item=i name=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示例

{* 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的嵌套使用

eg1:

$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 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}

::::

eg2:

$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}><br>
     新闻内容:<{$News[loop].newTitle}><br>
<{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)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}
  显示右分隔符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值