溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

smarty中常用方法有哪些

發(fā)布時間:2021-09-28 10:22:24 來源:億速云 閱讀:119 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“smarty中常用方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“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對這個變量進(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)的上一個值,默認(rèn)為-1;
    index_next:當(dāng)前下標(biāo)的下一個值,默認(rèn)為1;
    first:是否為第一下循環(huán);
    last:是否為最后一個循環(huán);
    iteration:循環(huán)個數(shù);
    rownum:當(dāng)前行號,iteration的別名;
    loop:最后一個循環(huán)號。Section的循環(huán)次數(shù);
    show:是否顯示;

<{section loop=$News}>
   新聞編號:<{$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}
{* 顯示來自一個表單的"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會話變量"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)前時間戳.
可以用 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)前時間戳.
可以用 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中常用方法有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI