博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 文件缓存
阅读量:5231 次
发布时间:2019-06-14

本文共 2018 字,大约阅读时间需要 6 分钟。

1.文件缓存类

*/ fgets( $handle ); // 取出序列化的缓存数据,并进行序列化恢复 $data = unserialize( fgets( $handle ) ); return $data; } /** * 写入缓存文件 * $file 写入缓存的文件名 * $data 需要进行缓存数据 */ public function Write( $file, $data = array() ){ $filename = self::$Dir . $file; // 尝试打开 $filename,如果文件不存在则创建 if ( $handle = @fopen( $filename, 'wb' ) ) { // 取得独占锁定 锁定文件我在操作时其他人不能进行操作 @flock($handle, LOCK_EX); // 缓存文件建议保存为 .php 格式 // 写入缓存文件保护代码 // 防止恶意访问该文件 fwrite( $handle, '<' . '?php exit; ?' . '>' ); fwrite( $handle, "\n" ); // 序列化待缓存的数据 $data = serialize($data); // 写入缓存数据 fwrite( $handle, $data ); // 释放锁定 @flock( $handle, LOCK_UN ); fclose( $handle ); return true; } return false; } /** * 清除缓存文件 * array $fileArr 需要清除的缓存文件 * bool $filenameMode 完整文件名模式,为 true 时必须 $file 参数必须输入完整的文件名,用于清除不在同一文件夹下的缓存文件! * * 案例: * FileCache::Clear(array('file1'),'A.php');//清除单条数据 * FileCache::Clear(array('file1', 'file2', 'file3'),'A.php');//清除多条数据,注意:必须在同一文件夹下 * FileCache::Clear(array('file1', 'file2', 'file3'),'A.php', './cache/A.php');//完整文件名模式 */ public function Clear( $fileArr,$file = '', $filename = false ) { if ( !is_array( $fileArr ) || empty( $fileArr ) || empty($file) ) { return; } if(!$filename){ //先把数据读出来 $readArr = self::Read($file); // 数组函数 array_diff() 按值删除 $readArr = array_diff($readArr, $fileArr); // 修改完在写入 self::Write('A.php', $readArr); }else{ //判断文件是否存在 防止第二次删除时 函数报错 if (!file_exists( $filename ) ) { return false; }else{ unlink($filename); } } } }

 

2.使用文件缓存

 

转载于:https://www.cnblogs.com/LF-place/p/10521869.html

你可能感兴趣的文章
jquery高级函数
查看>>
《Cloud Native Infrastructure》CHAPTER 2(1)
查看>>
C# 复制文件夹内所有内容
查看>>
python 冒泡排序
查看>>
jsp视频如何播放
查看>>
java后台获取cookie里面值得方法
查看>>
codevs1080线段树练习
查看>>
第四篇:数据预处理(一) - 缺失值处理
查看>>
reactnative state更新问题
查看>>
【Java】数组转List常见方式的对比
查看>>
格式化函数的用法
查看>>
k8s之yaml文件书写格式
查看>>
Individual Reading Assignment
查看>>
[Swift]LeetCode780. 到达终点 | Reaching Points
查看>>
poj3085
查看>>
Java学习不走弯路教程(13 HTTP服务器)
查看>>
[LeetCode] 733. Flood Fill_Easy tag: BFS
查看>>
uptime命令_打印系统总共运行了多长时间和系统的平均负载
查看>>
自定义alert弹框,title不显示域名
查看>>
Linux sed 命令字符串替换使用方法详解
查看>>