ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
结合网上资料与自己不断实践,终于把这个问题克服下来,现把相关心得简要总结如下: [TOC] ## 通用函数申明 ### 1、清空数据缓存 ``` /** * 清空数据缓存 不删出cache目录 * 2018.10.22 By wyb */ function clear_file_cache($path) { $dh = opendir($path); while (($file = readdir($dh)) !== false ) { if ($file != "." && $file != "..") { $fullpath = $path . $file; if (!is_dir($fullpath)) { array_map( 'unlink', glob($fullpath)); //echo '【删除文件】'.$fullpath ; } else { //echo '【文件夹】'.$fullpath ; $newpath = $fullpath . DS; clear_file_cache($newpath); @rmdir($newpath); } } } closedir($dh); return true; //删除当前文件夹: //if(rmdir($path)) { // return true; //} else { // return false; //} } ``` ### 2、清空模板缓存 ``` /** * 清除模板缓存 不删除 temp目录 * 2018.10.22 By wyb */ function clear_tmp_cache($path) { if(array_map('unlink', glob( $path.'*.php' ))){ return true; } else { return false; } } ``` ### 3、清空日志缓存 ``` /** * 清除日志缓存 不删出log目录 * 2018.10.22 By wyb */ function clear_log_cache($path) { $dh = opendir($path); while (($file = readdir($dh)) !== false ) { if ($file != "." && $file != "..") { $fullpath = $path . $file; if (!is_dir($fullpath)) { array_map( 'unlink', glob($fullpath)); //echo '【删除文件】'.$fullpath ; } else { //echo '【文件夹】'.$fullpath ; $newpath = $fullpath . DS; clear_log_cache($newpath); @rmdir($newpath); } } } closedir($dh); return true; //删除当前文件夹: //if(rmdir($path)) { // return true; //} else { // return false; //} } ``` ## 函数调用 ### 1、清除模板缓存 ``` /** * 清除模板缓存 不删除 temp目录 * 2018.10.22 By wyb */ public function clear_tmp() { $path = TEMP_PATH; if(clear_tmp_cache($path)){ return success('成功清除模板缓存'); }else{ return success('清除模板缓存失败'); } } ``` ### 2、清除数据缓存 ``` /** * 清除数据缓存 不删除 cache目录 * 2018.10.22 By wyb */ public function clear_cache() { $path = CACHE_PATH; if(is_dir($path)){ if(@clear_file_cache($path)){ return success('成功清空文件缓存'); }else{ return error('清空文件缓存失败'); } }else{ return error('文件缓存为空'); } } ``` ### 3、清除日志缓存 ``` /** * 清除日志缓存 不删除 log目录 * 2018.10.22 By wyb */ public function clear_log() { $path = LOG_PATH; if(is_dir($path)){ if(@clear_log_cache($path)){ return success('成功清除日志缓存'); }else{ return error('清除日志失败'); } }else{ return error('日志为空'); } } ``` ### 4、一键清空缓存 ``` /** * 一键清空数据缓存cache、模板缓存tmp,不删除 cache、tmp相关目录 * 2018.10.22 By wyb */ public function clearAll() { // 首先,清空模板缓存tmp $path = TEMP_PATH; if(!@clear_tmp_cache($path)){ return error('清除模板缓存失败'); } // 其次,清空数据缓存cache $c_path = CACHE_PATH; if(!@clear_file_cache($c_path)){ return error('清空文件缓存失败'); } // 最后,信息提示 return success('一键清空缓存成功'); } ```