Files
nuhodds_fi4/app/Utilities/ZipFolder.php
T
2026-07-12 20:54:06 +02:00

57 lines
1.5 KiB
PHP

<?php
namespace App\Utilities;
use App\Console\Commands\Grapper\Sofascore;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use ZipArchive;
class ZipFolder
{
public static function create(string $day)
{
$zipFilePath = Sofascore::$storage . '/' . $day . '.zip';
$path = Sofascore::$storage . '/' . $day;
$zip = new ZipArchive();
if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {
if (is_dir($path)) {
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
foreach ($files as $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($path) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();
}
} else {
return response()->json(['error' => 'Failed to create ZIP archive'], 500);
}
}
public static function get_tree(string $dir, &$results = array())
{
$files = scandir($dir);
foreach ($files as $value) {
$path = realpath($dir . DIRECTORY_SEPARATOR . $value);
if (!is_dir($path)) {
$results[] = $path;
} else if ($value != "." && $value != "..") {
self::get_tree($path, $results);
$results[] = $path;
}
}
return $results;
}
}