Comprimir y descomprimir archivos ZIP con librería PclZip

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. Una de las formas más sencillas de comprimir y descomprimir archivos es utilizar la librería ZipArchive, pero esta tiene el inconveniente de que es necesario tener habilitada la extensión ZIP en el servidor que ofrece el servicio de alojamiento.

En ocasiones no tenemos acceso a la instalación y modificación de paquetes y configuración del servidor, por lo que una buena opción es el uso de la librería PclZip.

Esta librería no es más que una clase que te puedes descargar de aquí.

Por ejemplo, si queremos crear un archivo zip con varios archivos podemos hacer algo como lo siguiente:

require('pclzip.lib.php');
$zip = new PclZip('test.zip');
$zip->create('a.txt,b.txt');
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!
(3 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

4 respuestas a “Comprimir y descomprimir archivos ZIP con librería PclZip”

  1. Jonathan Caballero dice:

    Saludos, usando esta clase me paso algo; si el nombre de los archivos que deseo comprimir tienen letras como la ñ o tildes, dichas letras son sustituidas por caracteres extraños, intente usar:
    if ($archive->create($ruta.iconv («LATIN-1» , «UTF-8» , $archivo),PCLZIP_OPT_REMOVE_ALL_PATH) == 0) {
    die(‘Error : ‘.$archive->errorInfo(true));
    }
    pero no funciono, tampoco usando utf_encode o utf_decode.
    Alguna sugerencia o experiencia que hayan tenido?

    • Jose Aguilar dice:

      Hola,

      En este caso mi recomendación es guardar los ficheros sin esos caracteres extraños. Algunos servidores no lo interpretan bien. Podrías renombrarlos con algo único con algo así:

      uniqid().strtolower(substr($archivo, -5))

      Saludos

  2. felix omar dice:

    Hola Jose.
    Buen día me a gustado tu web a estado muy interesante todo lo que as subido y me intereso mucho este tema de comprimir los archivos pero podrás explicar un poco mas a detalle la forma de como comprimir los archivos que se han subido al servidor y comprimir los y al momento de la descarga se mantenga integra la compresión con los archivos.

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