PHP Zip extract files online decompression function code
/ **********************
* @ file - path to zip file
* @ destination - destination directory for unzipped files
* /
function unzip_file ($ file, $ destination) {
// create object
$ zip = new ZipArchive ();
// open archive
if ($ zip-> open ($ file)! == TRUE) {
die (Could not open archive);
}
// extract contents to destination directory
$ zip-> extractTo ($ destination);
// close archive
$ zip-> close ();
echo Archive extracted to directory;
}
/ * 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;
}
}
/ ***** Example Usage *** /
$ files = array (file1.jpg, file2.jpg, file3.gif);
create_zip ($ files, myzipfile.zip, true);