thinkphp5 删除缓存

时间:2024-11-21 12:07:25

首先学习这几个php函数:

$dir = './runtime'; // 缓存文件夹

is_dir($dir); // 判断是否为目录  bool(true)

$dh = opendir($dir) ; // 打开的目录句柄资源 resource(62) of type (stream) 是一个资源型的文件流

closedir($dh); // 关闭目录句柄注意它的参数,是opendir($dir)的资源型

readdir($dh);  // 返回目录中下一个文件的文件名,注意它的参数,是opendir($dir)的资源型

unlink(''); // 函数删除文件

rmdir($dir); // 函数删除空的目录

下面主要代码:

  1. /**
  2. * 删除指定目录,用于删除缓存
  3. * @param  [type] $dir_path 文件夹路径
  4. * @return [type]          [description]
  5. */
  6. function deleteDir($dir_path)
  7. {
  8.     $dh = opendir($dir_path);
  9.     while (($file = readdir($dh)) !== false){
  10.         if ($file != "." && $file != "..") {
  11.             $fullpath = $dir_path.'/'.$file;
  12.             if(!is_dir($fullpath)){
  13.                 unlink($fullpath);
  14.             }else{
  15.                 deleteDir($fullpath);
  16.                 rmdir($fullpath);
  17.             }
  18.         }
  19.     }
  20.     closedir($dh);
  21.     $result = true;
  22.     $ndh = opendir($dir_path);
  23.     while (($file = readdir($ndh)) !== false){
  24.         if($file != "." && $file != ".."){
  25.             $result = false;
  26.         }
  27.     }
  28.     closedir($ndh);
  29.     return $result;
  30. }

调用函数:

  1. // 清除缓存
  2. public function deleteCache()
  3. {
  4.   $retval = deleteDir('../runtime/cache');
  5.   if($retval){
  6.       $retval = deleteDir('../runtime/temp');
  7.   }
  8.   return $retval;
  9. }