Generar un fichero .zip usando PHP
Los ficheros .zip son muy comunes para permitir a los usuarios descargar varios ficheros a la vez. ¿Cómo podemos generarlos en nuestras aplicaciones?
Los ficheros .zip son muy comunes para permitir a los usuarios descargar varios ficheros a la vez. ¿Cómo podemos generarlos en nuestras aplicaciones?
De hecho, PHP lo pone bastante fácil sin necesidad de recurrir a ningún paquete externo a través de la clase ZipArchive:
$zip = new ZipArchive();
$targetPath = __DIR__ . '/resultado.zip';
// Inicializamos el fichero en modo escritura
$zip->open($targetPath, ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Añadimos los ficheros dentro del zip
// podemos hacerlo con ficheros ya existentes
$zip->addFile(__DIR__ . '/otro-fichero.pdf', 'otro-fichero.pdf');
// o añadir el contenido directamente
$zip->addFromString('user.json', json_encode($user));
// IMPORTANTE: Cerramos el fichero para liberar el lock
$zip->close();
Tras ejecutar este código, el fichero de resultado se habrá guardado en $targetPath
y ya podemos hacer lo que necesitemos con él.
Si estáis interesados en los ficheros .zip, también hablo de ellos en este post: