如何以文件形式缓存php变量
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍如何以文件形式缓存php变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体实现方法如下:
千家信息网最后更新 2025年01月18日如何以文件形式缓存php变量
这篇文章主要介绍如何以文件形式缓存php变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体实现方法如下:
'./cache/',//缓存时间'cacheTime'=>20,//cache type'cacheType'=>1,//扩展名'cacheExe'=>'.php');$cache = new Cache($cache_set);$a=array('1','2');$a="aaa";$b='';if($cache->cache_is("d")){ $c=$cache->cache_read("d"); echo "c"; print_r($c);}else {$b=$cache->cache_data('d',$a);}print_r($b);//$cache->clear("a");//echo $cache->cache_read("./cache/d.php");//echo $d;*//** * 数据缓存类 v1.0 * @author shooke * 2009-11-13 16:02:26 * 用于缓存数据,如变量,但不能缓存页面 */class Cache{ //配置 public $config = array( //缓存路径 'cacheRoot'=>'./cache/', //缓存时间 'cacheTime'=>1, //cache 类型 1串化数据 2变量 'cacheType'=>2, //扩展名 'cacheExe'=>'.php' //转换中间变量 ); public $return_name=array(); function __construct($cache_set = array()) { if(!empty($cache_set)) $this->config=array_merge($this->config,$cache_set); $this->config['ClassName'] = __CLASS__; } public function clear($filename=''){ if (file_exists($this->cache_file($filename))) { @unlink($this->cache_file($filename)); }elseif (empty($filename)){ $this->clear_dir($this->config['cacheRoot']); }else{ $this->clear_dir($this->config['cacheRoot'].$filename); echo $this->config['cacheRoot'].$filename; } } //循环删除路径 private function clear_dir($dir,$to = false) { if ($list = glob($dir.'/*')) { foreach ($list as $file) { is_dir($file) ? $this->clear_dir($file) : unlink($file); } } if ($to === false) rmdir($dir); } //写入缓存 private function cache_write($filename, $writetext, $openmod='w'){ if (!file_exists($filename)) { @$this->makeDir( dirname($filename )); } if(@$fp = fopen($filename, $openmod)) { flock($fp, 2); fwrite($fp, $writetext); fclose($fp); return true; } else { echo "File: $filename write error."; return false; } } //缓存有效期 有效返回 true public function cache_is($fileName){ $fileName=$this->cache_file($fileName); if( file_exists( $fileName ) ) { //如果缓存时间为负数则永不过期 if ($this->config['cacheTime'] < 0) { return true; } //如果缓存时间为0则一直过期 if ($this->config['cacheTime'] == 0) { return false; } //获取缓存文件的建立时间 $ctime = intval(filemtime( $fileName )); //比较是否大于缓存时间,是则过期 否则不过期 if (time() - $ctime > $this->config['cacheTime']) { return false; }else { return true; } //文件不存在视为过期失效 }else { return false; } } public function cache_data($name,$data){ $varname=$name; $name = $this->cache_file($name); //config['cacheTime']==0也就是不启用缓存是直接返回数据 if ($this->config['cacheTime'] <> 0) { if($this->config['cacheType']==1){ $write_data = "".serialize($data); //return $data; }else { $write_data = ""; } $this->cache_write($name,$write_data); } return $data; } //缓存文件名 private function cache_file($filename){ return $this->config['cacheRoot'].$filename.$this->config['cacheExe']; } //读取文件 public function cache_read($file){ $file=$this->cache_file($file); if (!file_exists($file)) { return ''; } if($this->config['cacheType']==1){ if (function_exists('file_get_contents')){ $cache_Content= file_get_contents($file); }else{ $fopen = fopen($file,'r'); $cache_Content = ''; do { $data = fread($fopen,filesize($file)); if (strlen($data)===0) break; $cache_Content .= $data; }while(1); fclose($fopen); } $cache_Content = substr($cache_Content,13);/* 去除 */ $cache_Content = unserialize($cache_Content); return $cache_Content; }else{ include_once($file); return $var; } } //循环创建目录 private function makeDir( $dir, $mode = 0777 ) { if( ! $dir ) return 0; $dir = str_replace( "\\\\", "/", $dir ); $mdir = ""; foreach( explode( "/", $dir ) as $val ) { $mdir .= $val."/"; if( $val == ".." || $val == "." || trim( $val ) == "" ) continue; if( ! file_exists( $mdir ) ) { if(!@mkdir( $mdir, $mode )){ return false; } } } return true; }}?>
以上是"如何以文件形式缓存php变量"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
缓存
文件
变量
时间
数据
形式
有效
内容
扩展名
篇文章
路径
循环
也就是
价值
兴趣
小伙
小伙伴
文件名
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ps4 改服务器
认识意识形态网络安全重要性
腾讯云香港服务器搭建ss
云服务器硬盘初始化
淘宝有软件开发类目
互联网科技改变智慧门诊
数据库技术在财务方面的前景
卫星科技让互联网之光更亮
qx9770是服务器cpu吗
腾讯云哪里看数据库主机
网络安全的热词
山东济南口碑好的浪潮存储服务器
我的世界手游惊变100天服务器号
重庆数据网络安全工程
聊天软件开发工人
网络技术子健
株洲系统软件开发费用
软件开发工程师创业
跟网络安全有关的小品
网络安全视频原创夏季防溺水
数据库用update计算总工资
大湖数据库
数据库如何做测试
网络安全保密开展情况
pkpm增加数据库
我的世界服务器手机招管理员
error无法与服务器建立连接
武汉迈际网络技术有限公司
阿里云服务器访问路径
华为数据库名字