<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-31  評論-257  文章-0  trackbacks-0
    Smarty 的表現邏輯

          第一編文章中,只簡單的講述了Smarty里的基本原理,也就傳幾個變量的值而已,而本節中,將會講述Smarty的邏輯表示結構,比如它的分支,修飾符,迭代等結構的表達。

         (1) 注釋:

          中Smarty中,也可以使用注釋,設計人員可以用注釋在模板頁面中傳遞一些說明信息等。在Smarty中的注釋為:{* Hello Jiang! *},大家可以看到,Smarty中的注釋是用{**}來包圍的,可以單行,也可以多行,比如可以這樣寫:
          {* Hello
               Jiang! *}

         (2)變量修飾符:

          在Smarty中,可以為變量添加修飾符,用于對變量進行一些Smarty已定義好的操作,變量修飾符的寫法是:
          {$var|modifier}
    其中,$var 是變量,modifier 是修飾符的單詞,意為對指定變量進行某種修飾操作。

          1、capitalize 修飾符
          capitalize 修飾符用于對變量內的值中所有單詞的首字母變為大寫,可看示例:
          $smarty = new Smarty;
          $smarty->assign("$title","hello jiang zone");
          $smarty->display("index.tpl");

    index.tpl 內容為:
          {$title|capitalize}

          2、count_words
          count_words 函數統計變量中的單詞總數

          3、date_format
          date_format 函數是PHP strftime() 函數的包裝器,它能將可以被strftime()解析的任何日期/時間格式字符串轉換為某種特殊格式。

          4、default
          default 函數當應用層沒有返回值時,default為指示特定變量的默認值提供了一種簡單的方式。

          5、strip_tags
          strip_tags 函數刪除變量字符串中的標簽符號。如:
          $smarty->assign("name","<b>Jiang</b>");
          模板里這樣寫:{$name|strip_tags}
          會輸入如下name的值:"Jiang",它將<b></b>刪除了。所以,沒有輸出粗體

          6、truncate
          truncate 函數將變量字符串截取為指定數量的字符。]


          (3)控制結構

          1、if-elseif-else
          Smarty 的if語句與PHP語言中的if語句相同,與PHP一樣,可以使用一些條件限定符如下:
          eq            gt            gte            ge
          lt              lte            le              ne
          neq          is even     is not even   is odd
          is not odd  div by     event by    not
          mod         odd by      ==            !=
          >              <              <=            >=
    示例:
          {if $var > 5}
              <p>Hello JiangZone</p>
          {/if}

          2、foreach
          foreach 標記的作用與PHP語句中的命令相同。但如下所示,其語法大不相同。它有4個參數,其中兩個是必要的:
          form : 這個必要參數指定目標數組的名。
          item : 這個必要參數指定當前元素的名。
          key : 這個可選參數指定當前鍵的名。
          name : 這個可選參數指定節的名。這個名是任意的,應當設置為一個描述性的名字。
    看看如下例子:
    require("Smarty.class.php");
    $smarty = new Smarty;
    $daysofweek = array("Mon","Tues","Weds","Thu","Fri","Sat","Sun");     
    $smarty->assign("daysofweek",$daysofweek);
    $smarty->display("daysofweek.tpl");     

    以下是daysofweek.tpl模板文件:
    {foreach from=$daysofweek item=$day}
          {$day}<br />
    {/foreach}

          3、foreachelse
          foreachelse 標記與 foreach 一起使用,與用于字符串的 default 標記作用類似,數組為空時 foreachelse 標記可以生成某個候選結果。以下是一個使用 foreachelse 的模板示例:
    {foreach key=key item=item from=$titles}
          {$key}: {$item}<br />
    {foreachelse}
          <p>No states matching your query were found.</p>
    {/foreach}
    注意,foreachelse 不使用結束括號:它嵌入到foreach中,這與elseif嵌入到if語句中很類似。


          (4)語句
          Smarty 提供了幾個用于完成特殊任務的語句。
          1、include
          include語句與PHP包中的同名語句相同,只是它只用于將其它模板導入到當前模板。例如,假設希望在Smarty模板中導入兩個文件,header.tpl 和 footer.tpl ,可以如下完成:
    {include file="header.tpl"}
    {include file="footer.tpl"}

          2、insert
          insert 標記與 include 標記的功能相同,只是它要導入不會被緩存的數據。例如,可以使用這個函數插入經常更新的數據,如股票價格,天氣預報或其它在很短時間內就要改變的內容。它也接受幾個參數,一個是必要的,另外三個是可選的:
          name : 這個必要參數確定insert函數的名。
          assign : 這個可選參數可用于將輸出給變量,而不是直接發送到輸出。
          script : 這個可選參數可以指向在導入文件前直接執行的一個PHP腳本。當輸出文件的內容依賴于腳本所完成的某個特定動作時,可以使用此參數。例如,可以執行一個PHP腳本,返回某個默認的股票價格放在不可緩存的輸出中。
          var : 這個可選參數用于傳入所有插入模板使用的其它參數。可以通過這種方式傳遞很多參數。

          3、literal
          literal 標記告訴Smarty :標記中嵌入的任何數據都應當原樣輸出,不需要轉換。這個標記量常用于在模板中嵌入JavaScript 和CSS ,從而不需要擔心與 Smarty 的定界符沖突。

          4、php
          可以使用php函數在模板中嵌入PHP代碼。{php}{/php}標記中的任何代碼都由PHP引擎處理。
    posted on 2008-07-29 13:49 姜大叔 閱讀(393) 評論(0)  編輯  收藏 所屬分類: PHP
    主站蜘蛛池模板: 亚洲精品色播一区二区| 亚洲精品人成在线观看| 亚洲欧美黑人猛交群| 一二三四在线观看免费高清中文在线观看 | 中文亚洲AV片不卡在线观看| 免费VA在线观看无码| 亚洲午夜AV无码专区在线播放| 一级毛片免费在线| 国产亚洲精品看片在线观看| 三上悠亚电影全集免费| 亚洲高清国产AV拍精品青青草原| 99re6在线视频精品免费| 亚洲av不卡一区二区三区| 最近免费2019中文字幕大全| 亚洲最大中文字幕| 日韩精品成人无码专区免费| 亚洲AⅤ男人的天堂在线观看| 免费看男女下面日出水视频| 一级毛片免费全部播放| 好看的亚洲黄色经典| 在线观看www日本免费网站| 亚洲综合精品伊人久久| 免费国产人做人视频在线观看| 一级**爱片免费视频| 亚洲2022国产成人精品无码区| 国产精品免费网站| 国产精品久久久久久亚洲小说 | 国产精品1024在线永久免费 | 亚洲AⅤ视频一区二区三区 | 国产成人精品久久亚洲高清不卡 | 爱情岛论坛网亚洲品质自拍| 免费久久人人爽人人爽av| 亚洲综合无码一区二区三区| 日本a级片免费看| 手机看片国产免费永久| 亚洲最大福利视频| 亚洲亚洲人成综合网络| 日韩一区二区a片免费观看| 产传媒61国产免费| 亚洲mv国产精品mv日本mv| 中文字幕亚洲不卡在线亚瑟|