千家信息网

如何以文件形式缓存php变量

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍如何以文件形式缓存php变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体实现方法如下:
千家信息网最后更新 2026年11月01日如何以文件形式缓存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安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 互联网科技保险 厦门中拓互联网络科技有限公司 善班互联网科技 浩特互联网科技 有木互联网科技 佰商互联网科技有限公司 山东吉时兔互联网科技有限公司 新华互联网科技2019 随着互联网科技发展 崇明区互联网教育科技售后服务 互联网新科技动漫ppt素材 晋城互联网科技 众安科技工业互联网合作 互联网与数字科技关系 互联网科技包装股 抖集互联网科技技术咨询 西安左小互联网科技有限公司 山东蛋芒互联网科技有限公司 武汉亿视互联网科技有限公司 亿人帮互联网科技有限公司 西安纸贵互联网科技有限公司 朗涯互联网科技 联恩商钥互联网科技有限公司 华中科技有哪些互联网大佬 剑昆互联网络科技有限公司临桂 互联网科技数字货币 山东大美朱楼互联网科技有限公司 吉林省码上互联网科技电话 互联网科技品牌
0