Comprimir y descomprimir archivos ZIP con ZipArchive de PHP

En algunas aplicaciones de programación avanzada nos vemos en la necesidad de tener que empaquetar archivos para su descargar y desempaquetarlos para su instalación o visualización.

Comprimir y descomprmir archivos .zip con PHP es más fácil de lo que parece. Con muy pocas lineas de código puedes conseguir hacerlo. PHP dispone de una clase que te va ahorrar mucho código.

Con PHP se puede comprimir y descomprimir archivos de varias formas. En este artículo vamos a ver como hacerlo utilizando la librería ZipArchive de PHP.

Antes de poder utilizar esta libería es necesario checkear la información de nuestro servidor para ver si la extensión ZIP está habilitada.

zip-server

Si lo tenemos habilitado podremos comprimir archivos de la siguiente forma:

open($filename, ZIPARCHIVE::CREATE)) {
    $zip->addFile('file1.txt');
    $zip->addFile('file2.txt');
    $zip->close();
    echo 'Se ha creado correctamente '.$filename;
}
else {
    echo 'Error creando '.$filename;
}
?>

Y descomprimir de la siguiente:

open('test.zip')) {
    $zip->extractTo('extract/');
    $zip->close();
    echo 'El archivo ha sido descomprimido correctamente';
} else {
    echo 'Error al descomprimir';
}
?>

En este caso estamos descomprimiendo el contenido de test.zip en una carpeta llama «extract» que tenemos preparada para la recepción.

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(1 voto, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

5 respuestas a “Comprimir y descomprimir archivos ZIP con ZipArchive de PHP”

  1. Fler dice:

    Hay alguna fofma de descargar la descompresion, descargar todos los archivos del zip en vez de descomprimir en el servidor?

  2. Dixán Pupo dice:

    // Definir clase en $zip.
    $zip = new ZipArchive;

  3. edgar sosa dice:

    Hola buenas tardes, en el ejemplo que muestras para descomprimir un archivo veo que lo hace en el servidor , existe alguna forma de guardarlo y extraerlo en la compu del cliente ?, esto por ejemplo para enviarle facturas recibos etc. muchas gracias por tu atencion.

  4. Eve dice:

    Grandes borne! Agicedarmentos para tomar u treasure delaware escrever algo cual é realmente leitura accomplish valor. Demasiado frequentemente western european encontro a informação inútil electronic não some sort of algo cual é realmente relevante. Agradecimentos para seu trabalho duro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre