php 文件缓存数据类的代码分享
本文分享一个php文件缓存数据类,写的挺规范挺好的,后面有调用示例。有需要的朋友参考下。
说到php文件缓存,回顾之前介绍的文章,找到了这么几篇: php 缓存类 调用示例 PHP 数据缓存的实例代码 php 页面缓存类,大家可以参考下。 有了以上对于php 文件缓存的基础,下面开始今天的内容。 代码如下: <?php /** * 文件缓存类 * * @author 志凡 * @package cache * @version v0.1 * edit by bbs.it-home.org */ class FileCache { /** * @var string $cachePath 缓存文件目录 * @access public */ public $cachePath = './'; /** * 构造函数 * @param string $path 缓存文件目录 */ function __construct($path = NULL) { if ($path) { $this->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; } } } ?> 登录后复制 调用示例: <?php //php缓存类的例子 $cache = new FileCache(); $data = $cache->get('yourkey');//yourkey是你为每一个要缓存的数据定义的缓存名字 if ($data===false) { $data = '从数据库取出的数据或很复杂很耗时的弄出来的数据'; $cache->set('yourkey',$data,3600);//缓存3600秒 } // use your $data ?> 登录后复制 |

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除
