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.';
}
?>