PHP nos permite de manera nativa comprimir archivos en formato zip, a qui mostrare un ejemplo de como se hace.
En este ejemplo vamos a comprimir dos archivos en un zip.
$filename = “mi_archivo.zip”;
$zip = new ZipArchive();if ($zip->open($filename, ZipArchive::CREATE) !== TRUE) {
exit(“cannot open <$filename>\n”);
}$zip->addFile(“/public/files/archivo.pdf”, “archivo.pdf”);
$zip->addFile(“/public/files/archivo.docx”, “word/archivo.docx”);
$zip->close();
La siguiente linea debemos de pasar dos parámetros, la primera es la dirección del archivo a comprimir y el segundo parámetro es la ubicación donde se almacenara dentro del zip.
Por ejemplo los archivos de word dentro del zip los organizo en una carpeta especial para ello.
$zip->addFile(“/public/files/archivo.docx”, “word/archivo.docx”);
para comprimir toda una carpeta bastara con recorrer el directorio y agregarlos según se recorre la carpeta.
Recuerda tener permisos de escritura en el directorio donde los almacenaras.