您当前的位置:首页 > CMS常见问题 > ecshop常见问题 >

ecshop清除缓存文件

0
//清除缓存文件
function clear_cache_files($ext=''){
  return clear_tpl_files(true, $ext);
}

//清除指定后缀的模板缓存或编译文件
//@param bool 是否清除缓存还是清除编译文件
//@param string 需要删除的文件名,不包含后缀
//@return int 返回清除的文件个数
function clear_tpl_files($is_cache=true, $ext=''){
  $dirs=array();
  if(isset($GLOBALS['shop_id']) && $GLOBALS['shop_id'] > 0){
    $tmp_dir=DATA_DIR;
  }else{
    $tmp_dir='temp';
  }
  if($is_cache){
    $cache_dir=ROOT_PATH.$tmp_dir.'/caches/';
    $dirs[]=ROOT_PATH.$tmp_dir.'/query_caches/';
    $dirs[]=ROOT_PATH.$tmp_dir.'/static_caches/';
    for($i=0;$i<16;$i++)
    {
      $hash_dir=$cache_dir.dechex($i);
      $dirs[]=$hash_dir.'/';
    }
  }else{
    $dirs[]=ROOT_PATH.$tmp_dir.'/compiled/';
    $dirs[]=ROOT_PATH.$tmp_dir.'/compiled/admin/';
  }

清除缓存服务器响应载荷

  $str_len=strlen($ext);
  $count=0;
  foreach($dirs as $dir)
  {
    $folder= @opendir($dir);
    if($folder===false){continue;}
    while($file=readdir($folder)){
      if($file=='.' || $file=='..' || $file=='index.htm' || $file=='index.html'){continue;}
      if(is_file($dir.$file)){
        $pos=($is_cache) ? strrpos($file,'_') : strrpos($file,'.');
        if($str_len > 0 && $pos!==false){
          $ext_str=substr($file, 0, $pos);
          if($ext_str==$ext){
            if(@unlink($dir.$file)){$count++;}
          }
        }else{
          if(@unlink($dir.$file)){$count++;}
        }
      }
    }
    closedir($folder);
  }
  return $count;
}
顶部中部底部