<?php namespace app\check; use think\Env; class Cs extends BaseController { //定期清除tp生成的日志 public function clearCacheLog() { $logFilePath = LOG_PATH; $size = bcdiv($this->dirsize($logFilePath), 1048576, 1); //大於1M清除 if ($size > 1){ $this->delLog(LOG_PATH); } } //檢測文件夾大小 private function dirsize($dir) { @$dh = opendir($dir); $size = 0; while($file = @readdir($dh)){ if($file!="." && $file!=".."){ $path = $dir."/".$file; if(is_dir($path)){ $size += self::dirsize($path); }elseif(is_file($path)){ $size += filesize($path); } } } @closedir($dh); return $size; } //刪除文件 private function delLog($path) { //如果是目錄則繼續 if(is_dir($path)){ //掃描一個文件夾內的所有文件夾和文件並返回數組 $p = scandir($path); foreach($p as $val){ //排除目錄中的.和.. if($val !="." && $val !=".."){ //如果是目錄則遞歸子目錄,繼續操作 if(is_dir($path.$val)){ //子目錄中操作刪除文件夾和文件 self::delLog($path.$val.'/'); //目錄清空后刪除空文件夾 @rmdir($path.$val.'/'); }else{ //如果是文件直接刪除 unlink($path.$val); } } } } } }