您好,欢迎访问一九零五行业门户网

一个比较蛋疼的php缓存类

php缓存类
$ofc = new filecache();
$skey = 'ab_123';
$data = $ofc -> get($skey);
if (is_null($data))
$ofc -> set($skey, array('name' => 'ttt', 'datetime' => date('y-m-d h:i:s')), 100000);
print_r($data);
time()) { // 检查时间戳 { //未失效期,取出数据 $sdata = fread($handle, filesize($sfile)); fclose($handle); return unserialize($sdata); } else { // 已经失效期 fclose($handle); return null; } } } /** * 写入缓存 * * * * @param string $skey 缓存键值 * * @param mixed $mval 需要保存的对象 * * @param int $iexpire 失效时间 * * @return bool * @access public */ public function set($skey, $mval, $iexpire = null) { if (empty($skey)) return false; $sfile = self :: getfilename($skey); if (!file_exists(dirname($sfile))) if (!self :: is_mkdir(dirname($sfile))) return false; $abuf = array(); $abuf[] = time() + ((empty($iexpire)) ? self :: miexpire : intval($iexpire)); $abuf[] = serialize($mval); /** * 写入文件操作 */ $handle = fopen($sfile, 'wb'); fwrite($handle, implode(\n, $abuf)); fclose($handle); return true; } /** * * * 删除指定的缓存键值 * * * @param string $skey 缓存键值 * @return bool */ public function del($skey) { if (empty($skey)) return false; else { @unlink (self :: getfilename($skey)); return true; } } /** * * * 获取缓存文件全路径
* 返回: 缓存文件全路径
* $skey的值会被转换成md5(),并分解为3级目录进行访问 * * * @param string $skey 缓存键 * * @return string * @access protected */ private static function getfilename($skey) { if (empty($skey)) return false; $key_md5 = md5($skey); /** * $afilename = array(); * $afilename[] = rtrim(self :: $mscachepath, '/'); * $afilename[] = $key_md5{0} . $key_md5{1}; * $afilename[] = $key_md5{2} . $key_md5{3}; * $afilename[] = $key_md5{4} . $key_md5{5}; * $afilename[] = $key_md5; */ return self :: $mscachepath . '/' . $key_md5; // return implode('/', $afilename); } /** * * * 创建目录
* * * * @param string $sdir * @return bool */ private static function is_mkdir($sdir = '') { if (empty($sdir)) return false; /** * 如果无法创建缓存目录,让系统直接抛出错误提示 */ echo $sdir; if (!mkdir($sdir, 0666)) return false; else return true; } }
其它类似信息

推荐信息