How to compress files to zip using PHP ?


To compress files using PHP, you can use the built-in ZipArchive class, which provides functions to create and manage ZIP archives. Here’s a step-by-step guide on how to compress files using PHP:

1. Ensure that the Zip extension is enabled in your PHP configuration. If it’s not enabled, you can enable it by adding or uncommenting the following line in your php.ini file:


2. Create a PHP script that will handle the compression. Here’s an example:

function createZip($source, $destination)
    if (!extension_loaded('zip') || !file_exists($source)) {
        return false;

    $zip = new ZipArchive();

    if (!$zip->open($destination, ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
        return false;

    if (is_dir($source)) {
        $files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($source),

        foreach ($files as $name => $file) {
            if (!$file->isDir()) {
                $filePath = $file->getRealPath();
                $zip->addFile($filePath, basename($filePath));
    } else {
        $zip->addFile($source, basename($source));


    return true;

// Usage example:
$sourceDir = '/path/to/source/directory'; // Change this to the directory containing files you want to compress.
$destinationZip = '/path/to/destination/folder/'; // Change this to the path where you want to save the ZIP archive.

if (createZip($sourceDir, $destinationZip)) {
    echo "Compression successful!";
} else {
    echo "Compression failed!";

Replace /path/to/source/directory with the directory containing the files you want to compress, and /path/to/destination/folder/ with the path where you want to save the ZIP archive.

3. Save the PHP script on your server and run it through a web browser or command-line interface. The script will compress all the files in the specified source directory and create a ZIP archive in the destination folder.

Follow this video for complete guidance :

Keep in mind that this example uses the ZipArchive class, which is available in PHP 5.2.0 and later versions. If you need to support older PHP versions, you can use other libraries like PclZip or ZipStream.


Comments are closed.