操作如下: utility::clearCache("Data"); 或 utility::clearCache("Data-Logs");
class utility{ /** * 清除缓存 lhb_printf(get_defined_constants(true))-->打印出所有系统自定义常量; * @param string $cacheDir 要删除的缓存的目录,目录用"-"隔开 [如Temp-Data-Logs] */ static public function clearCache($cacheDir) { $type = $cacheDir; //将传递过来的值进行切割,我是已“-”进行切割的 $name = explode('-', $type); //得到切割的条数,便于下面循环 $count = count($name); //循环调用上面的方法 for ($i = 0; $i < $count; $i++) { //得到文件的绝对路径 $abs_dir = dirname(dirname(dirname(dirname(__FILE__)))); //组合路径 $pa = $abs_dir . str_replace("/", "\", str_replace("./", "\", RUNTIME_PATH)); //得到运行时的目录 $runtime = $pa . 'common~runtime.php'; if (file_exists($runtime))//判断 文件是否存在 { unlink($runtime); //进行文件删除 } //调用删除文件夹下所有文件的方法 $this->rmFile($pa, $name[$i]); } } /** * 删除文件和目录 * @param type $path 要删除文件夹路径 * @param type $fileName 要删除的目录名称 */ private function rmFile($path, $fileName) {//删除执行的方法 //去除空格 $path = preg_replace('/(/){2,}|{\}{1,}/', '/', $path); //得到完整目录 $path.= $fileName; //判断此文件是否为一个文件目录 if (is_dir($path)) { //打开文件 if ($dh = opendir($path)) { //遍历文件目录名称 while (($file = readdir($dh)) != false) { $sub_file_path = $path . "\" . $file; if ("." == $file || ".." == $file) { continue; } if (is_dir($sub_file_path)) { $this->rmFile($sub_file_path, ""); rmdir($sub_file_path); } //逐一进行删除 unlink($sub_file_path); } //关闭文件 closedir($dh); } rmdir($sub_file_path);//删除当前目录 } } }