Crear archivos Zip con PHP

La creación de archivos Zip con PHP es muy sencilla, podemos agregar cualquier tipo de archivos dentro de un Zip y descargarlo o almacenarlo en nuestro servidor, dependiendo de la necesidad, la siguiente función utiliza la clase ZipArchive de PHP, con esto simplemente necesitaremos llamar a la función pasándole las rutas de archivos que

deseamos comprimir y este nos retornara el archivo .Zip.

function create_zip($f=array(),$zip_name=''){

    $valid_files = array();

    if(is_array($files)) {
      foreach($files as $file) {
	
        if(file_exists($file)) {
          $valid_files[] = $file;
        }
      }
    }

    if(count($valid_files)) {
      $zip = new ZipArchive();
      if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
        return false;
      }
      foreach($valid_files as $file) {
        $zip->addFile($file,$file);
      }
      
	  $zip->close();
	  
      
	  if(file_exists($zip_name)){
		
		header('Content-type: application/zip');
		header('Content-Disposition: attachment; filename="'.$zip_name.'"');
		readfile($zip_name);
		
		unlink($zip_name);
	  }
	  
    }else{
        return false;
    }
}

Ahora que tenemos la función para poder comprimir los archivos tenemos que crear un array que pasaremos por parametro a la función.

$files = array(
  'images1.jpg',
  'images2.png',
  'images3.gif',
  'file.pdf'
);
create_zip($files,'file.zip');

Documentación: ZipArchive PHP

Descargar Script: Crear Zip con PHP

zp8497586rq

También te puede interesar