smarty中常用方法实例总结


Posted in PHP onAugust 07, 2015

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

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

示例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 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:

$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}
显示右分隔符

希望本文所述对大家基于smarty模板的php程序设计有所帮助。

PHP 相关文章推荐
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
PHP支付宝当面付2.0代码
Dec 21 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 #PHP
PHP下载生成的csv文件及问题总结
Aug 06 #PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 #PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 #PHP
php实现无限级分类(递归方法)
Aug 06 #PHP
PHP常用的排序和查找算法
Aug 06 #PHP
PHP处理会话函数大总结
Aug 05 #PHP
You might like
2021年最新CPU天梯图
2021/03/04 数码科技
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
python实现录音小程序
2020/10/26 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书