php程式在抵抗大流量訪問的時候動態**往往都是難以招架,所以要引入快取機制,一般情況下有兩種型別快取程式設計客棧
一、檔案快取
二、資料查詢結果快取,使用記憶體來實現快取記憶體
本例主要使用檔案快取。
主要原理使用快取函式來儲存網頁顯示結果,如果在規定時間裡再次呼叫則可以載入快取檔案。
工具類**:
// 檔案快取類
class cache
} /**
* 檢查快取是否有效
*/private function isvalid()
/*** 寫入快取
* $mode == 0 , 以瀏覽器快取的方式取得頁面內容
* $mode == 1 , 以直接賦值(通過$content引數接收)的方式取得頁面內容
* $mode == 2 , 以本地讀取(fopen ile_get_contents)的方式取得頁面內容(似乎這種方式沒什麼必要)
*/public function write($mode = 0, $content = '')
ob_end_flush ();
try catch ( exception $e )
} /**
* 載入快取
* exit() 載入快取後終止原頁面程式的執行,快取無效則執行原頁面程式生成快取
* ob_start() 開啟瀏覽器快取用於在頁面結尾處取得頁面內容
*/public function load() else
} /**
* 清除快取
*/public function clean() catch ( exception $e )
} /**
* 取得快取檔案路徑
*/private function getcacheid()
/*** 檢查目錄是否存在或是否可建立
*/private function dir_isvalid($dir) catch ( exception $e )
return true;
} /**
* 取得當前頁面完整url
*/private function geturl() else
return $url;
} /**
* 輸出錯誤資訊
*/private function error($str)
}使用方法:
使用方法如下:
一部分**放在要被快取邏輯**前面:
$cachedir = './cache/'; // 設定快取目錄
$cache = new cache ( $cachedir, 33 ); // 省略引數即採用預設設定, $cache = new cache($cachedir);
if (@$_get ['cacheact'] != 'rewrite' || @$_get ['clearcache'] == 'ok') // 此處為一技巧,通過xx.php?cacheact=rewrite更新快取,以此類推,還可以設定一些其它操作
$cache->load (); // 裝載快取,快取有效則不執行以下頁面**
// 頁面**開始
一部分放在被快取邏輯**後面:
// 頁面**結束
$cache->write (); // 首次執行或快取過期,生成快取
本文標題: php實現網頁快取的工具類分享
本文位址: /wangluo/php/128069.html
php 快取工具類 實現網頁快取
php 快取工具類 實現網頁快取 php程式在抵抗大流量訪問的時候動態 往往都是難以招架,所以要引入快取機制,一般情況下有兩種型別快取 一 檔案快取 二 資料查詢結果快取,使用記憶體來實現快取記憶體 本例主要使用檔案快取。主要原理使用快取函式來儲存網頁顯示結果,如果在規定時間裡再次呼叫則可以載入快取...
Redis作為快取實現工具類
使用redis作為快取物件,常用的儲存格式為字串,所以在儲存快取時,將物件轉為字串儲存.由於存的時候為字串,所以取出的也為json字串.此工具類在設值時只需要將key與物件傳入即可 取值時只需要將key與要取的物件型別傳入即可 public class cacheutilimpl implement...
php實現的任意進製互轉類分享
之前不知道php自帶有base convert可以實現任意進製之間的轉換,自己寫了乙個。進製轉換類 author sgf funcity version 2011 02 15 class hex if out hex in hex if out hex self hex max out hex se...