//清除缓存文件 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; }