getMTime()] = $fileinfo->getFilename(); } krsort($files); foreach($files as $file) { if (!in_array($file, $blackList)) { if($cpt++ >= $_nbFiles){ $return = (unlink($_path . $file)) ? TRUE : FALSE; } } } return $return; } public static function cleanFilesByTime(string $_path, int $_limitTime = 24*3600) // 24*3600 pour une journée { if ($handle = opendir($_path)) { while (false !== ($file = readdir($handle))) { $filelastmodified = filemtime($_path . $file); if((time() - $filelastmodified) > $_limitTime) { unlink($_path . $file); } } closedir($handle); } } public static function copyFolder(string $_folder, string $_target) { if($dir = opendir($_folder)){ mkdir($_target); while (($file = readdir($dir))) { if (($file != '.') && ($file != '..')) { if (is_dir($_folder . '/' . $file)) { self::copyFolder($_folder . '/' . $file, $_target . '/' . $file); } else { copy($_folder . '/' . $file, $_target . '/' . $file); } } } closedir($dir); } } public static function deleteFolder(string $_dir) { if(is_dir($_dir)){ $command = "rm -r " . $_dir; try { system($command); return TRUE; } catch (Exception $ex) { return FALSE; } } } public static function zip(string $_dir, string $_name) { $zip = new ZipArchive(); $zip_name = $_name . ".zip"; $zip->open($zip_name, ZipArchive::CREATE); $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($_dir), RecursiveIteratorIterator::LEAVES_ONLY); foreach ($files as $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($_dir)); $zip->addFile($filePath, $relativePath); } } $zip->close(); return $zip_name; } public static function unzip(string $_zip, string $_target){ if(is_file($_zip)){ $zipInfo = pathinfo($_zip); if($zipInfo["extension"] == "zip") { $command = "unzip -q " . $_zip . " -d " . $_target . $zipInfo["filename"]; try { system($command); return $zipInfo["filename"]; } catch (Exception $ex) { return FALSE; } } } return FALSE; } }