Lenguaje PHP

Comprimir archivos ZIP con PHP: Ejemplo completo

Crear ficheros ZIP usando PHP

Comprimir archivos ZIP con PHP. En esta entrada vamos a explicar cómo comprimir archivos usando un formulario HTML. En el cual, si presionas un botón se genera la compresión de los archivos y la descarga respectiva del documento comprimido. Si embargo, no basaremos en la clase ZipArchive del famoso lenguaje de programación PHP.

Comprimir archivos ZIP con PHP: Ejemplo completo

La clase ZipArchive de PHP

Cabe resaltar que esta clase está disponible en las versiones de PHP que detallaremos a continuación

  • La versión de PHP 5, mayores o igual a 5.2.0
  • PHP 7 o superior
  • PECL zip Mayor o igual a 1.1.0

Sintaxis de la clase ZipArchive

 ZipArchive {
/* Propiedades */

int $status;
int $statusSys;
int $numFiles;
string $filename;
string $comment;

/* Métodos */
bool addEmptyDir ( string $dirname )
....
....
}

¿Cómo funciona este ejemplo?

Primero tenemos que tener una carpeta llamado “mis-archivos” o en todo caso si no la tenemos la creamos en nuestro servidor web. Sin embargo, todo el contenido de esa carpeta será los elementos que queremos comprimir, pueden ser imágenes, documentos de WORD, Excel, Power Point, etc.

Partes del sistema

Veremos la estructura y secuencia de como poder comprimir varios archivos que tenemos en nuestro servidor web.

Archivo Index.php

Sera el encargado de realizar toda la tarea y la compresión de los ficheros. En el siguiente código declaramos un array y lo poblamos con los archivos que existen en nuestra carpeta.

$adarchivos = array();

// Creamos el array y declaramos los ficheros de la carpeta
$adarchivos = array(
    'mis-archivos/01.jpg',
    'mis-archivos/02.jpg'
);

Le generamos un nombre al archivo comprimido

// Declaramos el nombre del archivo comprimido
$nombre_zip = 'mi-archivo-comprimido.zip';

Agregamos los ficheros a comprimir

// Agregamos los archivos a comprimir
foreach ($adarchivos as $nuevo){

    $mizip->addFile($nuevo, str_replace('download/', '', $nuevo));
}

Una vez creado el fichero comprimido podemos forzarlo para que el navegador lo descargue de manera automática.

// Generar la descarga en el navegador
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$nombre_zip);
header('Content-Length: ' . filesize($nombre_zip));
readfile($nombre_zip);

Creamos un formulario que al presionarlo nos genere el fichero comprimido. Sin embargo, como ya he mencionado usaremos una condicional PHP para activarlo.

<form action="" method="post">
<input name="Generar_zip" class="btn btn-primary" type="submit" value="Comprimir Archivos">
</form>

Declaramos al inicio del documento la condicional para generar los ficheros ZIP

// validamos el envio el formulario para que se active la creacion del comprimido
if(isset($_POST["Generar_zip"])){
......
}
Comprimir archivos en ZIP con PHP
Comprimir archivos en ZIP con PHP

CONCLUSIÓN

Recordemos que PHP trabaja muy bien con formatos ZIP, puede comprimir y descomprimir ficheros PHP. Por lo tanto, si desean comprimir ustedes pueden aplicar este modelo que esta descrito en este artículo. Pueden modificar el código de acuerdo a sus necesidades.

Si desean saber más cosas sobre esta clase ZipArchive, no duden en visitar la web oficial de PHP a tal dirección.

Clase ZIpArchive

DESCARGA

Descargar Código Fuente

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

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

Botón volver arriba