smarty中常用方法實(shí)例總結(jié)
本文實(shí)例總結(jié)了smarty中常用方法。分享給大家供大家參考。具體如下:
1. Smarty中foreach的index、iteration的使用
.index包含當(dāng)前數(shù)組索引,從零開始。
index示例
{* The header block is output every five rows *} {* 每五行輸出一次頭部區(qū)塊 *} <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包含當(dāng)前循環(huán)次數(shù),與index不同,從1開始,每次循環(huán)增長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. 其他常用關(guān)鍵字
<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>
name: section的名稱,不用加$;
$loop: 要循環(huán)的變量,程度中要使用assign對這個(gè)變量進(jìn)行操作。
$start: 開始循環(huán)的下標(biāo)。默認(rèn)為0;
$step: 每次循環(huán)下標(biāo)的增數(shù);
$show : boolean型。決定是否對于這塊進(jìn)行顯示。默認(rèn)為true;
<{section}>的屬性;
index:循環(huán)下標(biāo)。默認(rèn)為0;
index_prev:當(dāng)前下標(biāo)的上一個(gè)值,默認(rèn)為-1;
index_next:當(dāng)前下標(biāo)的下一個(gè)值,默認(rèn)為1;
first:是否為第一下循環(huán);
last:是否為最后一個(gè)循環(huán);
iteration:循環(huán)個(gè)數(shù);
rownum:當(dāng)前行號(hào),iteration的別名;
loop:最后一個(gè)循環(huán)號(hào)。Section的循環(huán)次數(shù);
show:是否顯示;
<{section loop=$News}> 新聞編號(hào):<{$News[loop].newID}><br> 新聞內(nèi)容:<{$News[loop].newTitle}><br> <{sectionelse}> I am sorry <{/section}>
if用法:
{if $list[row].name eq "1"} 星期1 {elseif $list[row].name=="2"} 星期2 {else} 默認(rèn) {/if}
4. smarty 系統(tǒng)變量
{* 顯示URL中的page值($_GET)http://www.example.com/index.php?page=foo *}
{$smarty.get.page}
{* 顯示來自一個(gè)表單的"page"變量($_POST['page'])*}
{$smarty.post.page}
{* 顯示COOKIE變量"username"的值($_COOKIE['username'])*}
{$smarty.cookies.username}
{* 顯示服務(wù)器變量"SERVER_NAME"($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
{$smarty.server.PHP_SELF}
{$smarty.server.SCRIPT_NAME}
{* 顯示系統(tǒng)環(huán)境變量"PATH" *}
{$smarty.env.PATH}
{* 顯示PHP會(huì)話變量"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}取得服務(wù)器變量,{$smarty.env.PATH}取得系統(tǒng)環(huán)境變量path,{$smarty.request.username}取得get/post/cookies/server/env的復(fù)合變量。
{$smarty.now}變量用于訪問當(dāng)前時(shí)間戳.
可以用 date_format調(diào)節(jié)器格式化輸出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
{$smarty.const}
你可以直接訪問PHP常量. 例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通過{capture}..{/capture}結(jié)構(gòu) 截取的輸出可以使用{$smarty} 變量訪問.
{$smarty.config}
{$smarty}變量 可以訪問已經(jīng)加載的config變量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.
{$smarty.section}, {$smarty.foreach}
{$smarty} 變量可以訪問'section'和'foreach'循環(huán)的屬性.
{$smarty.template}
顯示當(dāng)前被處理的模板的名字.
{$smarty.version}
顯示smarty模板的版本
{$smarty.ldelim}
顯示左分隔符
{$smarty.rdelim}
顯示右分隔符$smarty}保留變量可以被用于訪問一些特殊的模板變量,以下是全部頁面請求變量。
以下是訪問頁面請求變量諸如get,post,cookies,server,enviroment和session變量的例子. 例如{$smarty.server.SERVER_NAME}取得服務(wù)器變量,{$smarty.env.PATH}取得系統(tǒng)環(huán)境變量path,{$smarty.request.username}取得get/post/cookies/server/env的復(fù)合變量。
{$smarty.now}變量用于訪問當(dāng)前時(shí)間戳.
可以用 date_format調(diào)節(jié)器格式化輸出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
{$smarty.const}
你可以直接訪問PHP常量. 例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通過{capture}..{/capture}結(jié)構(gòu) 截取的輸出可以使用{$smarty} 變量訪問.
{$smarty.config}
{$smarty}變量 可以訪問已經(jīng)加載的config變量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.
{$smarty.section}, {$smarty.foreach}
{$smarty} 變量可以訪問'section'和'foreach'循環(huán)的屬性.
{$smarty.template}
顯示當(dāng)前被處理的模板的名字.
{$smarty.version}
顯示smarty模板的版本
{$smarty.ldelim}
顯示左分隔符
{$smarty.rdelim}
顯示右分隔符
希望本文所述對大家基于smarty模板的php程序設(shè)計(jì)有所幫助。
- Ajax+smarty技術(shù)實(shí)現(xiàn)無刷新分頁
- Zend Framework實(shí)現(xiàn)Zend_View集成Smarty模板系統(tǒng)的方法
- Codeigniter中集成smarty和adodb的方法
- PHP文件緩存smarty模板應(yīng)用實(shí)例分析
- yii,CI,yaf框架+smarty模板使用方法
- smarty高級(jí)特性之對象的使用方法
- smarty高級(jí)特性之過濾器的使用方法
- php實(shí)現(xiàn)smarty模板無限極分類的方法
- smarty簡單應(yīng)用實(shí)例
- Smarty使用自定義資源的方法
- Smarty最簡單實(shí)現(xiàn)列表奇偶變色的方法
- Smarty foreach控制循環(huán)次數(shù)的一些方法
- CodeIgniter中使用Smarty3基本配置
- smarty學(xué)習(xí)筆記之常見代碼段用法總結(jié)
相關(guān)文章
布隆過濾器(bloom filter)及php和redis實(shí)現(xiàn)布隆過濾器的方法
這篇文章主要介紹了布隆過濾器(bloom filter)介紹以及php和redis實(shí)現(xiàn)布隆過濾器實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12thinkPHP數(shù)據(jù)庫增刪改查操作方法實(shí)例詳解
這篇文章主要介紹了thinkPHP數(shù)據(jù)庫增刪改查操作方法,結(jié)合實(shí)例形式詳細(xì)分析了thinkPHP常用數(shù)據(jù)庫操作函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下2016-12-12php 生成自動(dòng)創(chuàng)建文件夾并上傳文件的示例代碼
本篇文章主要是對php生成自動(dòng)創(chuàng)建文件夾并上傳文件的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)
本篇文章主要介紹了PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn),這個(gè)平時(shí)做的密碼驗(yàn)證有異曲同工之處,有需要的可以了解一下。2016-10-10彈出模態(tài)框modal的實(shí)現(xiàn)方法及實(shí)例
這篇文章主要介紹了彈出模態(tài)框modal的實(shí)現(xiàn)方法及實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09php將session放入memcached的設(shè)置方法
這篇文章主要介紹了php將session放入memcached的設(shè)置方法,需要的朋友可以參考下2014-02-02