Skip to content

Instantly share code, notes, and snippets.

@LogIN-
Created October 4, 2014 11:10
Show Gist options
  • Select an option

  • Save LogIN-/a08729dbdb1c9cdfbc67 to your computer and use it in GitHub Desktop.

Select an option

Save LogIN-/a08729dbdb1c9cdfbc67 to your computer and use it in GitHub Desktop.
PHP create ZIP Archive function
<?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 $path => $filename) {
//make sure the file exists
if(file_exists($path.$filename)) {
$valid_files[$path] = $filename;
}
}
}
//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 $path => $filename) {
$zip->addFile($path.$filename, $filename);
}
//debug
//return ('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;
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment