中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Smarty高級應用之緩存操作技巧分析
來源:易賢網 閱讀:1203 次 日期:2016-08-23 15:04:42
溫馨提示:易賢網小編為您整理了“Smarty高級應用之緩存操作技巧分析”,方便廣大網友查閱!

本文實例講述了Smarty高級應用之緩存操作技巧。分享給大家供大家參考,具體如下:

smarty緩存控制

smarty提供了強大的緩存功能。但有時我們并不希望整篇文檔都被緩存,而是有選擇的緩存某一部分內容或某一部分內容不被緩存。例如你在頁面上端使用一個帶有廣告條位置的模板,廣告條可以包含任何HTML、圖象、FLASH等混合信息. 因此這里不能使用一個靜態的鏈接,同時我們也不希望該廣告條被緩存. 這就需要在 insert 函數指定,同時需要一個函數取廣告條的內容信息。smarty也提供了這種緩存控制能力。

我們可以使用{insert}使模板的一部分不被緩存

可以使用$smarty->register_function($params,&$smarty)阻止插件從緩存中輸出,

還可以使用$smarty->register_block($params,&$smarty)使整篇頁面中的某一塊不被緩存。

下面我們真對一個簡單需求,分別說明這三種控制緩存輸出的方法。

需求:被緩存的文檔中當前時間不被緩存,隨每次刷新而變化。

1、使用insert函數使模板的一部分不被緩存

index.tpl:

<div>{insert name="get_current_time"}</div>

index.php

function insert_get_current_time(){

  return date("Y-m-d H:m:s");

}

$smarty=new smarty();

$smarty->caching = true;

if(!$smarty->is_cached()){

  .......

}

$smarty->display('index.tpl');

注解:

定義一個函數,函數名格式為:

inser_name(array $params, object &$smarty),

函數參數可選的,如果在模板的insert方法中需要加入其他屬性,就會作為數組傳遞給用戶定義的函數。

如:

{insert name='get_current_time' local='zh'}

在get_current_time函數中我們就可以通過$params['local']來獲得屬性值。

如果在get_current_time函數中需要用到當前smarty對象的方法或屬性,就可以通過第二個參數獲得。

這時你會發現index.tpl已被緩存,但當前時間卻隨每次刷新在不斷變化。

2、使用register_function阻止插件從緩存中輸出

index.tpl:

<div>{current_time}{/div}

index.php:

function smarty_function_current_time($params, &$smarty){

  return date("Y-m-d H:m:s");

}

$smarty=new smarty();

$smarty->caching = true;

$smarty->register_function('current_time','smarty_function_current_time',false);

if(!$smarty->is_cached()){

  .......

}

$smarty->display('index.tpl');

注解:

定義一個函數,函數名格式為:smarty_type_name($params, &$smarty)

type為function

name為用戶自定義標簽名稱,在這里是{current_time}

兩個參數是必須的,即使在函數中沒有使用也要寫上。兩個參數的功能同上。

3、使用register_block使整篇頁面中的某一塊不被緩存

index.tpl:

<div align='center'>

Page created: {"0"|date_format:"%D %H:%M:%S"}

{dynamic}

Now is: {"0"|date_format:"%D %H:%M:%S"}

... do other stuff ...

{/dynamic}

</div>

index.php:

function smarty_block_dynamic($param, $content, &$smarty) {

return $content;

}

$smarty = new Smarty;

$smarty->caching = true;

$smarty->register_block('dynamic', 'smarty_block_dynamic', false);

if(!$smarty->is_cached()){

  .......

}

$smarty->display('index.tpl');

注解:

定義一個函數,函數名格式為:smarty_type_name($params, &$smarty)

type為block

name為用戶自定義標簽名稱,在這里是{dynamic}

兩個參數是必須的,即使在函數中沒有使用也要寫上。兩個參數的功能同上。

4、總結

(1)對緩存的控制能力:

使用register_function和register_block能夠方便的控制插件輸出的緩沖能力,可以通過第三個參數控制是否緩存,默認是緩存的,需要我們顯示設置為false,正如我們試驗中的所做的那樣

復制代碼 代碼如下:

$smarty->register_function('current_time','smarty_function_current_time',false);

但insert函數默認是不緩存的。并且這個屬性不能修改。從這個意義上講insert函數對緩存的控制能力似乎不如register_function和register_block強。

(2)使用方便性:

但是insert函數使用非常方便。不用顯示注冊,只要在當前請求過程中包含這個函數smarty就會自動在當前請求的過程中查找指定的函數。

當然register_function也可以做到不在運行時顯示注冊。但是那樣做的效果跟其他模版函數一樣,統統被緩存,并且不能控制。

如果你使用在運行時顯示調用register_function注冊自定義函數,那么一定要在調用is_cached()方法前完成函數的注冊工作。

否則在is_cached()這一步緩存文檔將因為找不到注冊函數而導致smarty錯誤

Smarty用戶自定義函數實例

<?php

$smarty->register_function('date_now', 'print_current_date');

function print_current_date($params, &$smarty)

{

 if(empty($params['format'])) {

  $format = "%b %e, %Y";

 } else {

  $format = $params['format'];

 }

 return strftime($format,time());

}

?>

在模板中使用

{date_now}

{* or to format differently *}

{date_now format="%Y/%m/%d"}

希望本文所述對大家基于smarty模板的PHP程序設計有所幫助。

更多信息請查看網絡編程
易賢網手機網站地址:Smarty高級應用之緩存操作技巧分析
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲gay无套男同| 国产69精品久久777的优势| 亚洲精品高清在线观看| 免费在线观看日韩欧美| 丁香婷婷综合色啪| 欧美精品在线观看一区二区| 国产午夜精品久久久久久免费视| 亚洲免费观看高清完整版在线观看熊 | 91精品国产一区二区三区| 国产欧美日韩在线| 日韩高清在线不卡| 在线欧美一区二区| 中文字幕电影一区| 老汉av免费一区二区三区| 欧美日韩一区不卡| 亚洲色图另类专区| 成人污视频在线观看| 26uuu另类欧美| 日韩成人一区二区三区在线观看| 色先锋aa成人| 中文字幕一区二区不卡| 国产乱人伦偷精品视频免下载 | 性做久久久久久免费观看欧美| 播五月开心婷婷综合| 久久久99精品免费观看| 久久福利资源站| 欧美一区二区三区免费在线看 | 日本中文一区二区三区| 欧美日本在线看| 亚洲国产精品一区二区久久| 97精品久久久午夜一区二区三区| 日本一区二区三区dvd视频在线| 久久国产精品露脸对白| 日韩视频免费观看高清完整版 | 91精品国产综合久久香蕉麻豆| 亚洲精品久久久蜜桃| 成人av影视在线观看| 国产精品久久一卡二卡| 岛国一区二区在线观看| 中文字幕电影一区| 成人午夜视频在线| 精品少妇一区二区三区| 久久精品国产一区二区三| 日韩一区二区三区高清免费看看| 亚洲一区电影777| 欧美日韩精品福利| 香港成人在线视频| 日韩一卡二卡三卡国产欧美| 久久成人av少妇免费| 久久久一区二区三区捆绑**| 国产福利一区在线| 国产精品女上位| 日本韩国精品在线| 三级在线观看一区二区| 日韩欧美一二三区| 高清beeg欧美| 亚洲综合在线视频| 欧美一区二区在线不卡| 国产精品一区在线观看乱码 | 成人av免费在线播放| 亚洲啪啪综合av一区二区三区| 色94色欧美sute亚洲13| 日欧美一区二区| 国产日产欧美一区二区视频| 91免费在线播放| 肉肉av福利一精品导航| 久久婷婷综合激情| 91在线视频免费91| 日本中文字幕一区二区有限公司| 国产亚洲综合性久久久影院| 在线观看亚洲精品视频| 美女网站色91| 中文字幕一区三区| 欧美日本在线播放| 国产夫妻精品视频| 亚洲高清视频中文字幕| 久久综合网色—综合色88| 99国产精品视频免费观看| 日韩精品电影一区亚洲| 国产精品午夜免费| 日韩欧美综合在线| 色综合久久久久| 国产一区日韩二区欧美三区| 亚洲免费观看高清完整| 欧美电影免费观看高清完整版在线观看| 午夜欧美2019年伦理| 中文字幕成人网| 在线播放日韩导航| 成人一级片在线观看| 亚洲成人1区2区| 国产精品美女久久久久久久久 | 99久久精品免费看| 另类人妖一区二区av| 亚洲精品久久7777| 久久久.com| 56国语精品自产拍在线观看| 不卡的电视剧免费网站有什么| 亚洲成a人片综合在线| 一区在线观看免费| 久久婷婷国产综合精品青草| 精品视频在线免费观看| 国产1区2区3区精品美女| 午夜欧美在线一二页| 中文字幕亚洲视频| 久久久不卡影院| 7777精品伊人久久久大香线蕉经典版下载 | 国内精品写真在线观看| 亚洲欧美日韩精品久久久久| 欧美精品一区二区不卡 | 午夜激情久久久| 国产精品久久久久久久久免费相片| 777久久久精品| 99国产精品久久久久| 国产乱理伦片在线观看夜一区| 亚洲一区二区黄色| 亚洲欧美国产三级| 国产精品久久午夜夜伦鲁鲁| 香蕉成人啪国产精品视频综合网| 2欧美一区二区三区在线观看视频| 欧美亚洲另类激情小说| 99在线热播精品免费| 国产精品一区二区久久不卡 | 中文字幕av一区二区三区免费看| 日韩一区二区三免费高清| 欧美制服丝袜第一页| 99精品在线免费| www.成人在线| 国产不卡视频在线播放| 国产精一区二区三区| 国产精品一区二区在线播放 | 强制捆绑调教一区二区| 精品国产91亚洲一区二区三区婷婷| 亚洲日本一区二区| 国产精品美女久久久久久久| 欧美日韩的一区二区| 成人免费一区二区三区视频| 久久精品视频免费观看| 2023国产精华国产精品| 日韩欧美一级片| 欧美精品一区在线观看| 欧美一级高清片在线观看| 欧美日韩一二三| 日韩女优av电影| 久久av老司机精品网站导航| 免费人成黄页网站在线一区二区 | 欧美成人精品1314www| 91在线免费播放| 91在线视频播放地址| 色综合天天综合在线视频| 国产精品一区免费在线观看| 国内精品伊人久久久久av影院 | 久久免费电影网| 日韩精品一区二区在线| 日韩一区二区麻豆国产| 久久男人中文字幕资源站| 国产欧美日韩三区| 中文一区二区完整视频在线观看 | 亚洲成人精品影院| 日韩成人免费看| 精一区二区三区| 成人av在线网| 欧美日韩在线播放三区| 欧美一级在线观看| 国产偷国产偷亚洲高清人白洁| 久久久久久一二三区| 国产精品理论片在线观看| 一区二区在线观看av| 日日摸夜夜添夜夜添国产精品| 免费不卡在线视频| av综合在线播放| 91精品国产aⅴ一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕欧美日韩一区| 亚洲欧美aⅴ...| 久久99精品国产91久久来源| 91在线观看高清| 日韩精品一区二区三区在线播放| 国产欧美在线观看一区| 日韩影院精彩在线| 成人一区在线观看| 日韩欧美国产小视频| 中文字幕一区二区三区乱码在线| 有坂深雪av一区二区精品| 美女诱惑一区二区| 欧美亚洲国产一区二区三区| 欧美精品一区在线观看| 午夜不卡在线视频| 成人黄色av网站在线| 69堂国产成人免费视频| 久久九九99视频| 日韩在线一区二区| 91精彩视频在线| 中文字幕av一区二区三区高 | 精品一区二区三区香蕉蜜桃| 国产白丝精品91爽爽久久| 欧美日韩免费不卡视频一区二区三区| 中文字幕第一区二区| 精品一二三四区| 日韩一级成人av| 奇米精品一区二区三区四区 |