中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PHP教程(40)Smarty下
userphoto

2022.07.19 廣東

關注

模板引擎——Smarty

目錄

模板引擎——Smarty下

一、內建函數(shù)

1、if…elseif…else…if

2、ldelim、rdelim

3、literal

4、php

5、section

6、strip

二、自定義函數(shù)(plugins)

1、counter

2、cycle

3、debug

4、fetch

5、html_image

6、html_table

7、html_checkboxes復選框

8、html_options

9、html_radios

三、綜合案例——PHP+Smarty完成數(shù)據(jù)分頁

1、數(shù)據(jù)庫設計

2、設計HTML界面(ok)

3、編寫程序

四、程序篇

1、常量

2、變量

3、常用方法

五、緩存篇

1、Smarty中的緩存

2、使用Smarty緩存

3、緩存作用

4、緩存文件從“何”而來?

5、Smarty工作原理圖

6、isCached方法

7、清除緩存

8、單頁面多緩存

9、緩存集合

10、局部緩存

六、過濾器

1、什么是過濾器

2、驗證過濾器的存在

七、整合Smarty到MVC


一、內建函數(shù)

1、if…elseif…else…if

基本語法

{if}

         {elseif}

    {else}

{/if}

功能:實現(xiàn)if選擇結構

示例代碼:

運行結果:寫代碼

2、ldelim、rdelim

{ldelim}

{rdelim}

功能:輸出Smarty標簽的左右分界符

示例代碼:

運行效果:

3、literal

基本語法:

{literal}

         內容(css代碼或js代碼)

{/literal}

功能:literal標簽區(qū)域內的數(shù)據(jù)將被當作文本處理,此時模板將忽略其內部的所有字符信息. 該特性用于顯示有可能包含大括號等字符信息的css javascript腳本. 當這些信息處于 {literal}{/literal} 標簽中時,模板引擎將不分析它們,而直接顯示.

示例代碼:

效果如下:

4、php

基本語法

{php}

         php代碼

{/php}

功能:允許我們在Smarty模板引擎中使用php代碼(但不推薦使用)

Smarty3.0該語法已經廢除,如要使用,請使用SmartyBC入口

示例:

效果:2015-02-11 00:00:00

5section

基本語法:

{section name=名稱 loop=循環(huán)數(shù)組(次數(shù)) start=開始(0) step=步階(1) max=最大循環(huán)次數(shù)}
         {sectionelse}

{/section}

功能:實現(xiàn)對數(shù)組(索引從0開始且連續(xù))的遍歷

參數(shù)說明:

loop:要遍歷的數(shù)組

name:每次遍歷時,系統(tǒng)會將遍歷索引放入name

start:默認開始的索引

step:步階或步調,默認為1

max:最大循環(huán)次數(shù)

示例代碼:

1:遍歷一維數(shù)組

運行結果:

sectionforeach對比:

foreach可以實現(xiàn)對數(shù)組進行遍歷,且每次遍歷后,會將遍歷的內容保存在item選項中,其是真正意義上的遍歷數(shù)組。類似于PHP中的foreach循環(huán)

section也可以實現(xiàn)對數(shù)組的遍歷,但每次循環(huán)時,系統(tǒng)只是通過loop確定數(shù)組中元素個數(shù)并確定循環(huán)次數(shù),并將循環(huán)索引放入name選項中,其并不是真正意義上的遍歷數(shù)組,只是類似于PHP代碼中的for循環(huán)而已。

2section參數(shù)使用

效果如下:

3section遍歷二維數(shù)組

運行結果:

section附加屬性

{$smarty.section.name.index} :循環(huán)索引,默認從0開始

{$smarty.section.name.index_prev} :當前索引的上一次索引

{$smarty.section.name.index_next} :當前索引的下一次索引

{$smarty.section.name.iteration} :第幾次循環(huán)(迭代)

{$smarty.section.name.first} :當?shù)谝淮窝h(huán)時,條件為真

{$smarty.section.name.last} :當最后一次循環(huán)時,條件為真

{$smarty.section.name.total} :循環(huán)的總次數(shù)

示例代碼:

運行效果:

6、strip

{strip}

         格式化代碼

{/strip}

功能:去除元素的首尾空格及換行

示例代碼:

運行效果:

鼠標右鍵查看源代碼:

二、自定義函數(shù)(plugins

1、counter

基本語法

{counter start=0 skip=2 print=false}

功能:計數(shù)器

參數(shù)說明:

start:默認開始數(shù)字,默認為1

skip:步階或步調

print:當前是否輸出

示例代碼

運行效果:

2、cycle

功能:實現(xiàn)輪顯操作

基本語法:

<tr bgcolor={cycle values="#eeeeee,#d0d0d0"}>

示例代碼:

運行效果:

3debug

功能:實現(xiàn)對源代碼的調試

基本語法:{debug}

示例代碼:

{debug}

運行效果:

4、fetch

基本語法:

{fetch file=“載入文件路徑” assign=“變量”}

引用:

{$變量}

示例代碼:

運行效果:

5html_image

基本語法

{html_image file="pumpkin.jpg"}

示例代碼:

6、html_table

基本語法:

{html_table  loop=$data  cols=4  table_attr='border="0"'}

功能:把數(shù)組(簡單)轉化為表格

參數(shù)說明:

loop:要遍歷的數(shù)組

cols:顯示多少列

table_attr:表格屬性,多個屬性請用空格隔開,也可以使用style

示例代碼:

運行效果:

7、html_checkboxes復選框

基本語法:

{html_checkboxes  name='cust values=$cust_ids  checked=$customer_id output=$cust_names  separator="<br />"}

參數(shù)說明

name:復選框的名稱(主要用于接收)

values:復選的value屬性的值(數(shù)組)

checked:選中的值(數(shù)組)

output:顯示的值(數(shù)組)

sepatator:元素與元素的分隔符

示例代碼:

運行效果:

8、html_options

基本語法:

<select name=customer_id>         

{html_options  values=$cust_ids  selected=$customer_id  output=$cust_names}

</select>

參數(shù)說明:

valueoption選項的value值(數(shù)組)

selected:被選中的option (數(shù)組)

output:顯示出的值(數(shù)組)

示例代碼:

運行效果:

9、html_radios

基本語法:

{html_radios values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}

參數(shù)說明:

valuesradio選項的value

checked:默認選中的值(要求是一個固定的值)

output:要輸出的文本信息(數(shù)組)

separator:元素與元素之間的分隔符

示例代碼:

運行效果:

三、綜合案例——PHP+Smarty完成數(shù)據(jù)分頁

1、數(shù)據(jù)庫設計

p_id                   int

p_title              varchar

p_addtime        int

2、設計HTML界面(ok

3、編寫程序

fenye.php  fenye.html

效果:

四、程序篇

常量

變量

常用方法

緩存控制技術

1、常量

SMARTY_DIR

2、變量

$template_dir :模板路徑

$compile_dir :編譯目錄

$config_dir :配置文件目錄

$cache_dir :緩存目錄

$left_delimiter :左分界符

$right_delimiter :右分界符

$caching :緩存開關,Boolean類型,truefalse,默認false

$cache_lifetime :緩存周期,默認情況3600 1個小時

$debugging :調試開關,Boolean類型,默認為false

$php_handling Smarty3.0中已基本無效,默認整型

示例代碼:

3、常用方法

assign        :分配變量到模板文件(值傳遞)

assignByRef      :分配變量到模板文件(引用傳遞)

append               :以數(shù)組的形式分配變量到模板(值傳遞)

appendByRef   :以數(shù)組的形式分配變量到模板(引用傳遞)

clearAllAssign   :清除所有賦值操作

clearAssign       :清除指定賦值操作

clearCache     :清除緩存

configLoad         :加載配置文件

clearConfig        :清除配置信息

display                :顯示輸出模板文件

fetch                   :載入文件到字符串

templateExists  :判斷模板文件是否存在

示例代碼:

1assignassignByRef的區(qū)別

2append方法

運行效果:

3clearAssignclearAllAssign

4configLoad加載配置文件

5fetch方法

功能:載入文件到字符串

靜態(tài)化技術

www.baidu.com/index.php?id=10

www.baidu.com/index.php?id=11

www.baidu.com/index.php?id=12

www.baidu.com/1407222879.html

www.baidu.com/1407222880.html

效果:

6templateExists判斷模板是否存在'

示例代碼:

五、緩存篇

編譯 <緩存 < 靜態(tài)化

1Smarty中的緩存

默認是關閉,如果要使用,請開啟Smarty緩存開關caching

2、使用Smarty緩存

示例代碼:

運行效果:

3、緩存作用

1)加快網(wǎng)站的訪問速度

2)減少服務器的壓力

3)減少數(shù)據(jù)庫服務器的壓力你

4、緩存文件從而來?

答:編譯文件

5、Smarty工作原理圖

6、isCached方法

基本語法

$smarty->isCached(tpl.tpl)

功能:用于檢測模板是否擁有緩存

1:通過smarty讀取數(shù)據(jù)庫中的一條記錄

2:通過緩存技術減少對數(shù)據(jù)庫的讀取

7、清除緩存

$smarty->clearCache(“tpl.tpl”)

清除指定頁面的緩存

$smarty->clearAllCache()

清除所有頁面緩存(cms系統(tǒng)后臺的清楚緩存按鈕)

通過clearCache可以清楚指定頁面的緩存,我們通常用于單頁面處理

公司簡介                   -----------------------------------     更新頁面

而我們的clearAllCache通常用于清除所有緩存,通過用于整個系統(tǒng)中

例如ecshop右上角的清除緩存按鈕,dedecms更新緩存

8、單頁面多緩存

www.shop.com/show.php?id=1讀取id1的產品內容

www.shop.com/show.php?id=2

www.shop.com/show.php?id=3

通過實驗可知,只有第一次訪問時,系統(tǒng)可以正常讀取,以后每次訪問時,系統(tǒng)自動轉向第一次請求的緩存頁面,無論參數(shù)如何變化

如何解決?

答:通過單頁面多緩存

基本語法:

$smarty->display(tpl, “唯一值”)

實例代碼:

該功能主要用于詳細內容頁。

9、緩存集合

問題:以上問題,如果有多個參數(shù)

答:可以通過緩存集合的方式來解決以上問題

示例代碼:

以上代碼主要應用于分類頁或列表頁

10、局部緩存

在項目中,可能有些功能或模塊并不需要進行緩存(如點擊次數(shù)、評論),如何解決呢?

$smarty->assign(“var”, “value”, true) :當前變量不緩存(PHP入口)

{$var nocache=true} :當前變量不緩存(模板頁)

{nocache}{/nocache} :某個區(qū)塊不緩存(模板頁)

示例代碼:

1

2

3:區(qū)域緩存

六、過濾器

1、什么是過濾器

tpl源文件 =Prefilter =〉編譯tpl文件 => Postfilter =>保存到磁盤=> 編譯過的php文件執(zhí)行=Output Filters=〉如果有smarty cache的話,Output Filters的內容會緩存) =>結果輸出。

Prefilter:前置(預)過濾器(標簽替換成動態(tài)代碼發(fā)生的)

Postfilter:后過濾器(編譯文件保存到硬盤時發(fā)生的)

OutputFilter:在請求轉發(fā)回用戶時觸發(fā)此過程

2、驗證過濾器的存在

Smarty3.0中使用以下方式創(chuàng)建過濾器

$smarty->registerFilter($type, $callback)

$type:定義過濾器的類型

pre  預過濾器

post 后過濾器

output 輸出過濾器

$callback:自定義函數(shù)

七、整合SmartyMVC

1)在Core中創(chuàng)建Tools文件夾用于保存第三方框架文件

2)復制smartyCoreTools文件夾

3)在View.class.php核心視圖類中引用Smarty入口文件

4)在Action.class.php核心控制器中創(chuàng)建如下語句

public function __constructor() {

   $this->view = new View();

   $this->view->setTemplateDir('模板存放路徑’);

}

5)以后就可以在所有控制器中使用$this->view->assign()$this->view->display()方法

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Smarty的基本使用與總結
smarty實例教程
smarty 原來也不過如此~~呵呵
smarty半小時快速上手教程
smarty詳細使用教程(韓順平smarty模板技術筆記)
PHP核心之模板引擎Smarty
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服