Smarty筆記、smarty常用配置 變量 循環與變量調節器

1 如何徹底去除視圖文件中的PHP代碼

  • html代碼與PHP代碼分離,其實就是前端人員與程序員分離
  • 思路:查找替換
    在這裏插入圖片描述

2 Smarty

  • smarty就是一個類文件

2.1 舉例

在這裏插入圖片描述
在這裏插入圖片描述

2.2 Smarty常用配置

2.2.1 左右定界符

左邊界符:$smarty->left_delimiter="<{";
右邊界符:$smarty->right_delimiter="}>";

2.2.2 smarty常用目錄的配置
  • smarty類文件中的構造方法對所有的目錄進行了初始化
  • (1)設置或讀取視圖文件目錄
  • 設置視圖文件目錄:$smarty->setTemplateDir(新目錄文件)
  • 讀取視圖文件目錄:$smarty->getTemplateDir()
  • (2)其他目錄的設置和讀取方法
  • 編譯目錄的設置:$smarty->setCompileDir()
  • 編譯目錄的讀取:$smarty->getCompileDir()
  • 配置目錄的設置:$smarty->setConfigDir()
  • 配置目錄的讀取:$smarty->setConfigDir()

3 smarty中的變量

在PHP中,能用smarty解決的,儘量不要使用PHP語法

3.1 普通變量

  • 所有的PHP變量,都可以傳遞到視圖文件來使用
  • 但是,在視圖中,對象和資源變量,不常用
  • 在模板中,讀取數組的元素,可以使用中括號語法和點語法

3.2 保留變量

3.2.1 訪問頁面請求變量
  • 所有的超全局數組變量,可以在視圖文件中直接使用
  • smarty獲取超區局變量
    {$smarty.get.參數}
    {$smarty.post.參數}
    {$smarty.request.參數}
    {$smarty.server.參數}
    {$smarty.session.參數}
    {$smarty.cookie.參數}
    {$smarty.files.參數}
3.2.2 訪問PHP中的預定義變量**
  • {$smarty.const.常量名}
3.2.3 smarty時間戳**
  • {$smarty.now}
  • 格式化時間戳:{$smarty.now|date_format:’%Y-%m-%d %H:%M:%S’}

3.3 配置文件變量

3.3.1 定義配置文件
  • 設置配置文件的工作目錄:$smarty->setConfigDir()
  • 讀取配置文件的工作目錄:$smarty->getConfigDir()
  • 配置文件拓展名:.conf、.ini
  • 配置文件的註釋:#
  • 一行只能寫一個配置
  • 格式是:變量名=變量值
  • 變量名不帶$符號,變量值不帶引號
3.3.2 在視圖文件中,如何訪問配置變量
<!--加載配置文件-->
<{config_load file="myConfig.conf"}>
<!--讀取配置文件參數-->
<{#a#}><br>
<{$smarty.config.b}><br>
<{$smarty.config.c}><br>
3.3.3 配置文件變量分組
  • 使用中括號對配置文件進行分組
    在這裏插入圖片描述
3.3.4 在視圖文件讀取分組的配置變量
  • <{config_load file=“myConfig.conf” section=“tw”}>

4 smarty中的循環 foreach

4.1 foreach語法格式

  • foreach可以遍歷所有類型的數據,包含,枚舉數組、關聯數組、混合數組、多維數組
  • {foreach $arr as $key=>$value}
    循環的內容
    {/foreach}
  • 面向非程序員的寫法
    {foreach from=’ ’ key=’ ’ item=’ '}
    {/foreach}

4.2 輸出一維數組

在這裏插入圖片描述

4.3 輸出二維數組

在這裏插入圖片描述

4.4 foreach常用屬性

參數 說明
@key 輸出當前值的索引,可能是整形索引,也可能是字符索引
@index 當前數組索引,從0開始計算
@iteration 當前循環的次數,從1開始計算
@first 當首次循環時,值爲true
@last 當最後一次循環時,值爲true
@total 整個循環的次數,可以在foreach內部或外部使用

在這裏插入圖片描述

5 smarty中的循環 section

5.1 foreach語法格式

  • section循環,與PHP的for循環相似
  • for循環可以指定循環起點、步長值、最大循環次數
  • for只能遍歷枚舉數組,數組下標必須是從0開始的正整數
  • for不能遍歷關聯數組(數字下標是字符串)
  • {section name=’ ’ loop=’ ’ start=’ ’ step=’ ’ max=’ '}
    {/sextion}
參數 說明
name 每次循環的索引,相當於$i
loop 循環的數組變量
start 循環的初始值,默認爲0,從第1個元素開始循環
step 每次循環的步長值,默認爲1
max 最大循環次數

name和loop屬性是必須的

5.2 遍歷一維枚舉數組

在這裏插入圖片描述

5.3遍歷二維數組

在這裏插入圖片描述

6 smarty中的條件判斷 if

  • PHP中的運算符在smarty中都可以使用

6.1 if三種語法結構

  • (1)只判斷true的情況
    {if 條件判斷 }
    條件爲true執行的代碼
    {/if}

  • (2)既判斷true,也判斷false
    {if 條件判斷 }
    條件爲true執行的代碼
    {else}
    條件爲false執行的代碼
    {/if}

  • (3)多條件判斷
    {if 條件1 }
    執行的代碼
    {elseif 條件2 }
    執行的代碼
    {elseif 條件3 }
    執行的代碼
    {else}
    執行的代碼
    {/if}

6.2 if中的運算符

在這裏插入圖片描述

6.3 應用舉例:表格隔行變色

在這裏插入圖片描述

7 smarty中的變量調節器

7.1

  • 變量調節器,就是對變量進行格式的函數,對變量進行格式化輸出
  • 語法格式:{$var |調節器1:參數1:參數2:參數N |調節器2 |調節器3····}

7.2 常用變量調節器

調節器 說明 對應PHP的函數
upper 轉成全大寫 strtoupper()
lower 轉成全小寫 strtolower()
nl2br 將\n換行符,轉成<br/> nl2br()
replace 查找替換 str_replace()
date_format 時間戳格式化 date()
truncate 截取字符串 substr()或mb_substr()
轉成全大寫:<{$tittle|upper}><br>
轉成全小寫:<{$tittle|lower}><br>
查找替換:<{$tittle|replace:"we":"we don't"}><br>
轉成全大寫:<{$tittle|upper}><br>
當前時間戳:<{time()}><br>
當前時間戳:<{$smarty.now}><br>
格式化時間戳:<{date('Y-m-d H:i:s',time())}><br>
格式化時間戳:<{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}>
<{$tittle|truncate:10:''}><br>
<{$tittle|truncate:10}>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章