PHP Create Zip File From Directory

Whenever you are working in PHP Projects or web applications. So many times you need to create a zip file in your PHP projects. This tutorial will show you the easy and simple way how to create a zip file in PHP and can also download the zip file.

php create zip file from directory. Here you will learn how to create zip file from directory in php, or php zip folder and subfolders, php create zip file and download, phhp zip addfile, php exec zip folder, php zip csv file,, zip archive, php zip archive extension, etc.

And instead of php file, you can compress file like excel file, txt file, csv, etc. from given php script in zip.

PHP Create Zip File From Directory

Let’s start tutorial to creating a simple zip file in PHP projects or web applications:

Create a Index.php File

First of all create a index. php file and update the following code into your index.php file:

<?php
/* creates a compressed zip file */
function create_zip($files = array(),$destination = ''$overwrite = false){
     //if the zip file already exists and overwrite is fals, return false
     if(file _exists($destination)&&!$overwrite){return false;}
     //vars
     $valid_files = array();
     //if files were passed in...
     if(is_array($files)) {
         //cycle through each file
         foreach($files as $file) {
             //make sure the file exists
             if(file_exists($file)){
                 $valid_files[] = $file;
             }
         }
     }
//if we have good files...
if(count($valid_files)){
   //create the archive
   $zip = new zipArchive()
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== 
true) {
   return false.
}
//add the files
foreach($valid_files as $file) {
    $zip->addFile($file,$file);
}
//debug
//echo 'The zip archive contains ',$zip->numFiles,'files with a status of ',$zip->status;

//close the zip -- done!
$zip->close();

//check to make sure the files exists
return file_exists($destination);
}
else
{
 return false;
 }
}

$files_to_zip = array (
    'D:/Xampp/htdocs/phptest.php',
    'D:/Xampp/htdocs/index.php',
);

//if success than true. if false, zip creation failed 

$result = create_zip($files_to_zip, 'my-archive.zip');

?>

We have created a function in PHP called create_zip(). Which compresses and downloads files or folders into zip.

You will see that the function named create_zip() is called in the last of PHP script. This function compresses files and folders in the zip. And If you want to change the name of the zip file that will be created and downloaded, you can also change its name easily.

NOTE: Where you create_zip($ files_to_zip, ‘my-archive.zip’); Under “my-archive.zip” it has been done, instead you can keep any name you want to keep.

Leave a Reply

Your email address will not be published.