首页 / 缓存 / php文件缓存数据类的代码分享
php文件缓存数据类的代码分享
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php文件缓存数据类的代码分享,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2722字,纯文字阅读大概需要4分钟。
内容图文
本文分享一个php文件缓存数据类,写的挺规范挺好的,后面有调用示例。有需要的朋友参考下。
说到php文件缓存,回顾之前介绍的文章,找到了这么几篇: php 缓存类 调用示例 PHP 数据缓存的实例代码 php 页面缓存类,大家可以参考下。 有了以上对于php 文件缓存的基础,下面开始今天的内容。 代码如下: cachePath = $path; } } /** * 析构函数 */ function __destruct() { //nothing } /** * 在cache中设置键为$key的项的值,如果该项不存在,则新建一个项 * @param string $key 键值 * @param mix $var 值 * @param int $expire 到期秒数 * @param int $flag 标志位 * @return bool 如果成功则返回 TRUE,失败则返回 FALSE。 * @access public */ public function set($key, $var, $expire = 36000, $flag = 0) { $value = serialize($var); $timeout = time() + $expire; $result = safe_file_put_contents($this->cachePath . urlencode($key) .'.cache', $timeout . '<<%-==-%>>' . $value); return $result; } /** * 在cache中获取键为$key的项的值 * @param string $key 键值 * @return string 如果该项不存在,则返回false * @access public */ public function get($key) { $file = $this->cachePath . urlencode($key) .'.cache'; if (file_exists($file)) { $content = safe_file_get_contents($file); if ($content===false) { return false; } $tmp = explode('<<%-==-%>>', $content); $timeout = $tmp[0]; $value = $tmp[1]; if (time()>$timeout) { $result = false; } else { $result = unserialize($value); } } else { $result = false; } return $result; } /** * 清空cache中所有项 * @return 如果成功则返回 TRUE,失败则返回 FALSE。 * @access public */ public function flush() { $fileList = FileSystem::ls($this->cachePath,array(),'asc',true); return FileSystem::rm($fileList); } /** * 删除在cache中键为$key的项的值 * @param string $key 键值 * @return 如果成功则返回 TRUE,失败则返回 FALSE。 * @access public */ public function delete($key) { return FileSystem::rm($this->cachePath . $key .'.cache'); } } if (!function_exists('safe_file_put_contents')) { function safe_file_put_contents($filename, $content) { $fp = fopen($filename, 'wb'); if ($fp) { flock($fp, LOCK_EX); fwrite($fp, $content); flock($fp, LOCK_UN); fclose($fp); return true; } else { return false; } } } if (!function_exists('safe_file_get_contents')) { function safe_file_get_contents($filename) { $fp = fopen($filename, 'rb'); if ($fp) { flock($fp, LOCK_SH); clearstatcache(); $filesize = filesize($filename); if ($filesize > 0) { $data = fread($fp, $filesize); } flock($fp, LOCK_UN); fclose($fp); return $data; } else { return false; } } } ?> 调用示例: get('yourkey');//yourkey是你为每一个要缓存的数据定义的缓存名字 if ($data===false) { $data = '从数据库取出的数据或很复杂很耗时的弄出来的数据'; $cache->set('yourkey',$data,3600);//缓存3600秒 } // use your $data ?> |
内容总结
以上是互联网集市为您收集整理的php文件缓存数据类的代码分享全部内容,希望文章能够帮你解决php文件缓存数据类的代码分享所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。