Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/admin/zip.php |
<?php
function zipDirectory($source, $destination) {
if (!extension_loaded('zip') || !file_exists($source)) {
return false;
}
$zip = new ZipArchive();
if (!$zip->open($destination, ZipArchive::CREATE)) {
return false;
}
$source = realpath($source);
if (is_dir($source)) {
$iterator = new RecursiveDirectoryIterator($source);
// RecursiveIteratorIterator provides a deep recursive iteration over the files
$files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file) {
$file = realpath($file);
// Skip directories (they will be added automatically)
if (is_dir($file)) {
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
} else if (is_file($file)) {
$zip->addFile($file, str_replace($source . '/', '', $file));
}
}
} else if (is_file($source)) {
$zip->addFile($source, basename($source));
}
return $zip->close();
}
// Example usage
$sourceDirectory = './downloads'; // Replace with the directory you want to zip
$zipFile = 'downloads.zip'; // Replace with the path where you want to save the zip file
if (zipDirectory($sourceDirectory, $zipFile)) {
echo 'Directory successfully zipped!';
} else {
echo 'Failed to zip the directory.';
}
?>