php文件緩存類用法實(shí)例分析
本文實(shí)例講述了php文件緩存類用法。分享給大家供大家參考。具體如下:
<?php
/**
* 簡(jiǎn)單的文件緩存類
*
*/
class XZCache{
// default cache time one hour
var $cache_time = 3600;
// default cache dir
var $cache_dir = './cache';
public function __construct($cache_dir=null, $cache_time=null){
$this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir;
$this->cache_time = isset($cache_time) ? $cache_time : $this->cache_time;
}
public function saveCache ($key, $value){
if (is_dir($this->cache_dir)){
$cache_file = $this->cache_dir . '/xzcache_' . md5($key);
$timedif = @(time() - filemtime($cache_file));
if ($timedif >= $this->cache_time) {
// cached file is too old, create new
$serialized = serialize($value);
if ($f = @fopen($cache_file, 'w')) {
fwrite ($f, $serialized, strlen($serialized));
fclose($f);
}
}
$result = 1;
}else{
echo "Error:dir is not exist.";
$result = 0;
}
return $result;
}
/**
* @return array
* 0 no cache
* 1 cached
* 2 overdue
*/
public function getCache ($key) {
$cache_file = $this->cache_dir . '/xzcache_' . md5($key);
if (is_dir($this->cache_dir) && is_file($cache_file)) {
$timedif = @(time() - filemtime($cache_file));
if ($timedif >= $this->cache_time) {
$result['cached'] = 2;
}else{
// cached file is fresh enough, return cached array
$result['value'] = unserialize(file_get_contents($cache_file));
$result['cached'] = 1;
}
}else {
echo "Error:no cache";
$result['cached'] = 0;
}
return $result;
}
} //end of class
用法示例如下:
$cache = new XZCache(); $key = 'global'; $value = $GLOBALS; $cache->saveCache($key, $value); $result = $cache->getCache($key); var_dump($result);
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
相關(guān)文章
教你如何在CI框架中使用 .htaccess 隱藏url中index.php
CodeIgniter(以下簡(jiǎn)稱"CI")是一款國(guó)外優(yōu)秀的PHP輕量級(jí)MVC框架,它支持PHP4和PHP5,是開(kāi)發(fā)中小型可拓展性需求高的Web應(yīng)用程序的利器。很多博客程序,開(kāi)源的cms程序,都是采用CI進(jìn)行的編寫。2014-06-06
PHP自動(dòng)生成后臺(tái)導(dǎo)航網(wǎng)址的最佳方法
寫過(guò)很多種不同的后臺(tái)導(dǎo)航寫法最終積累了這種最寫法,算是最好的吧,個(gè)人感覺(jué)還算是不錯(cuò)的,喜歡的朋友可以參考下2013-08-08
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法,結(jié)合實(shí)例形式分析了php接口的概念、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
PHP實(shí)現(xiàn)模擬http請(qǐng)求的方法分析
這篇文章主要介紹了PHP實(shí)現(xiàn)模擬http請(qǐng)求的方法,簡(jiǎn)單分析了http請(qǐng)求的原理、流程及php實(shí)現(xiàn)模擬http請(qǐng)求的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
獲取用戶Ip地址通用方法與常見(jiàn)安全隱患(HTTP_X_FORWARDED_FOR)
這個(gè)來(lái)自一些項(xiàng)目中,獲取用戶Ip,進(jìn)行用戶操作行為的記錄,是常見(jiàn)并且經(jīng)常使用的。 一般朋友,都會(huì)看到如下通用獲取IP地址方法2013-06-06
php中如何判斷一個(gè)網(wǎng)頁(yè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求
以下是對(duì)php中如何判斷一個(gè)網(wǎng)頁(yè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
php模塊memcache和memcached區(qū)別分析
談及php搭配memcached使用,已經(jīng)是老生常談的問(wèn)題。但是有一些細(xì)節(jié),不見(jiàn)得人人清楚。比如說(shuō)php的模塊memcache和memcached有什么區(qū)別等。下面我就簡(jiǎn)單介紹一下。2011-06-06

