20150210--Smarty1-02
三、設計篇
1、Smarty注釋
基本語法:
{*注釋內容*}
示例代碼:
2、Smarty中的變量
1)從PHP中分配的變量(普通的變量、數組、對象)
基本語法:
$smarty->assign();
示例代碼:
demo02.php
demo02.html
運行效果:
2)從配置文件中讀取變量
基本語法:
在html靜態模板頁面,可以采用如下方式調用:
{config_load file=’配置文件名稱‘}
{#配置文件中的標簽名稱#}
示例代碼:
效果如下:
3)在模板文件中創建
基本語法:
定義
{assign var=‘name’ value=‘value’}
{$name=‘zhangsan’}
調用
{$name}
示例代碼:
效果如下:
3、Smarty中的保留變量
$smarty.get.page? 相當于 $_GET[‘page’]
$smarty.post.page 相當于 $_POST[‘page’]
$smarty.cookies.username $_COOKIES[‘username’]
$smarty.server.SERVER_NAME $SERVER[‘SERVER_NAME’]
$smarty.env.Path 獲取系統中的環境變量的Path路徑
$smarty.session.id $_SESSION[‘id’]
$smarty.request.username $_REQUEST[‘username’]
{$smarty.now} :獲取當前系統時間
{$smarty.const} :獲取PHP中的常量
{$smarty.capture} :獲取capture標簽捕獲的內容
{$smarty.config} :讀取配置文件信息 {$smarty.config.title}
{$smarty.section} :獲取section循環信息
{$smarty.template} :獲取當前調用的靜態模板名稱
{$smarty.current_dir} :獲取當前路徑
{$smarty.version} :獲取當前Smarty的版本號
{$smarty.ldelim}?? =?? {ldelim} :獲取當前Smarty中的左分界符
{$smarty.rdelim}?? =?? {rdelim} :獲取當前Smarty中的右分界符
示例代碼:
demo03.html
運行效果:
4、變量調節器(變量格式化工具)
1)什么是變量調節器
答:變量調節器主要是對變量進行格式化
基本語法:
{變量|調節器:參數1:參數2:……}
2)常用的變量調節器
{$var|capitalize} : 首字母大寫
{$var|count_characters:true}? :計算字符長度,第二個參數true:計算空格
{$var|count_paragraphs} :計算段落數
{$var|count_sentences} :計算句子數
{$var|count_words} :計算詞數
{$var|cat:var2} :連接字符串
{$var|date_format:”%Y%m%d”} :時間格式化 Y年m月d日 H小時M分鐘S秒數
{$var|default:”value”} :設置默認值
{$var|escape} :轉碼,主要針對html代碼
{$var|indent:10:”*”} :字符縮進
{$var|lower} :轉化為小寫
{$var|nl2br} :把\n轉化為br標簽
{$var|regex_replace:”/[\t\n]/”:””} :正則替換
{$var|replace:”aa”:”bb”} :字符替換
{$var|spacify:”^^”} :插空(在字符與字符之間插空)
{$var|string_format:”%d”} :字符串格式化 %s格式化為字符串 %d格式化為整數
{$var|strip: “*”} :去除多余的空格
{$var|strip_tags} :去除html標記
{$var|truncate:30:”…”} :截取字符
{$var|upper} :轉化為大寫
{$var|wordwrap:30:”<br>”} :行寬約束(每行只能顯示多少個字符)
示例代碼:
例1:
例2:
例3:
例4:
5、變量調節器組合應用
{$var|capitalize|truncate:30:”…”|replace:”aa”:”bb”}
答:首字母大寫并截取30個字符并用…相接,并把字符串中的aa替換為bb
6、內建函數
1)capture
基本語法
{capture name=‘var’}
內容
{/capture}
{$smarty.capture.var}
功能:捕獲一段內容但本次不輸出
示例代碼:
運行效果:
2)config_load
基本語法
{config_load file=’配置文件名稱‘ section=’section節‘}
{#變量名稱#}
{$smarty.config.變量名稱}
示例代碼:
運行效果:
3)foreach
基本語法:
foreach,foreachelse
{foreach from=數組
key=鍵
name=名稱
item=內容 }?
{foreachelse}
{/foreach}
功能:實現對數組的遍歷輸出(類似foreach)
參數說明:
from:要遍歷的數組
item:每次遍歷時,系統會自動將遍歷后的結果保存到item選項中
name:為foreach循環進行命名
key:保存循環時的鍵值
foreachelse:當要遍歷的數組為空時,系統進入當前語句段
例1:遍歷一維數組
示例代碼
效果:
例2:二維數組遍歷
例3:鍵值key的使用
例4:foreachelse
說明:當數組為空時,系統自動轉向foreachelse語句
foreach中的附加屬性
$smarty.foreach.name.index????? @index 獲取當前循環索引
$smarty.foreach.name.iteration?? @iteration 第幾次循環(迭代)
$smarty.foreach.name.first @first????? 當第一次循環時,條件為真
$smarty.foreach.name.last?? @last 當最后一次循環時,條件為真
$smarty.foreach.name.total?? @total 獲取循環的總次數
例5:參數name演示
效果如下:
例6:實現隔行變色效果
示例代碼:
運行效果:
4)include
基本語法
{include file=“要包含的模板文件名稱” assign=“var” [var ...]}
功能:包含模板文件
參數說明:
file:要包含的 模板文件名稱
變量名=變量值的形式
原理圖:
對于我們的項目:由于項目的頭部與尾部大部分都是相同的,所以可以單獨分離出來,我們整個項目其實只需要做中間部分即可。
示例代碼:
運行效果:
5)include_php
基本語法:
{include_php file=“php文件路徑” once=true}
功能:引入外部php文件
once:規定引用次數為1次,boolean,true:當前文件只能引入一次,默認為true
說明:在smarty3.0中已經不推薦使用此標簽,如需使用,可以使用smarty2入口文件
6、insert
基本語法
{insert name=’函數名稱’ 變量=變量的值}
功能:允許我們在Smarty模板頁面直接引入php函數
示例代碼:
demo10.php代碼
demo10.html代碼
注:在使用insert方法時,請注意創建的函數前面必須添加insert_前綴,且傳遞的參數都是以數組的形式追加到函數的形參中。
作業:通過php+smarty完成分頁程序
posted on 2016-05-06 00:43?山山未遲 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/lifushan/p/5463955.html
總結
以上是生活随笔為你收集整理的20150210--Smarty1-02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDU 2255】奔小康赚大钱 (最佳
- 下一篇: HttpClient Get/Post方