In this artical we will show you how to create create zip File and Extract zip File in php.

PHP has give class ZipArchive to create and manipulate for Zip files.

open() open() use of open/create any zip file using ZipArchive class
addFile() addFile() use of adding the files to archieve using ZipArchive class
close() close() use of safely close the zip file using ZipArchive class
extractTo() extractTo() use of extracting the zip file using ZipArchive class

How to create .zip File using PHP

// ZipArchive for Creating object
$zip_val = new ZipArchive();
 
$temp_set = 1;
$set_files= "sample_master.zip";

if($zip_val->open($set_files,$temp_set?ZIPARCHIVE::OVERWRITE:ZIPARCHIVE::CREATE)===TRUE)
{
   // Add css files to the .zip file()
   $zip_val->addFile("sample_master.css");
   
   // This means sample_style.css will be added as sample_new_style.css
   $zip_val->addFile("sample_style.css", "sample_new_style.css");
   
   $zip_val->addFile("sample_fonts.css");
   
   // Closing the zip file
   $zip_val->close();
   
   // Above code will generate master.zip
   // containing master.css, new_style.css, fonts.css
}

Extract .zip file using PHP

// Creating object of the ZipArchive
$zip_val = new ZipArchive();

// Open sample_master.zip for extracting all files
if ($zip->open("sample_master.zip") === TRUE) 
{
   // Will extract all files from sample_master.zip to given path.
   $zip_val->extractTo("/path/to/folder/");
   $zip_val->close();
}

// Extract only several files
 
// Open sample_master.zip for extracting single files
if ($zip_val->open("sample_master.zip") === TRUE) 
{
   // Will extract only sample_fonts.css from sample_master.zip to given path.
   $zip_val->extractTo("/path/to/folder/","sample_fonts.css");
   $zip_val->close();
}

// Open sample_master.zip for extracting multiple files
if ($zip->open("sample_master.zip") === TRUE) 
{
   // Will extract only sample_fonts.css and sample_master.css
   // from sample_master.zip to given path.
   $set_files = array("sample_fonts.css","sample_master.css");
   $zip_val->extractTo("/path/to/folder/",$set_files);   
   $zip_val->close(); // close
}