PHP Create Zip File From Directory Folder Example

Through this tutorial, you will learn how to create zip file from a directory/folder 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.

How to create and download a Zip file From Directory/Folder in PHP

Let’s start the tutorial for creating a simple zip file from directory/folder 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 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');
?>

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.

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.

php create zip file and download

Conclusion

That’s it; Through this tutorial, you have learned how to create zip file from directory/folder 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.

Recommended PHP Tutorials

AuthorDevendra Dode

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *