<?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); } } } } } }