A ZIP file is a compressed file format that allows you to store multiple files and folders in a single archive. This can be useful for reducing file size, making it easier to transfer or store large amounts of data.
In PHP, you can create ZIP files from directories using the ZipArchive class. This class provides a number of methods for adding files and directories to a ZIP archive, as well as for closing and saving the archive.
In this tutorial, we will learn how to create zip file from directory in php, or php zip folder and subfolders, php create zip file and download, php zip addfile, php exec zip folder, php zip csv file,, zip archive, php zip archive extension, etc.
Create a index.php file and add the following code into your index.php file to create zip file from directory or folder; is as follows:
<?php
/* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
//if the zip file already exists and overwrite is false, 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 file 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');
?>
The PHP create_zip () is 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.
Now you have to go to the browser. And hit the following URL
http://localhost/index.php
The zip file we named “my-archive.zip” was converted to such zip after downloading. You can see in the image below.
Thanks for reading !!!
#php