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.

php

Recuerda tener permisos de escritura en el directorio donde los almacenaras.

govani