- Informes de algunos meses del año.
- Múltiples imágenes o vídeos.
- PDFs asociados a una página.
- Etc.
Con PHP podemos comprimir en formato ZIP de varias maneras, pero vamos a destacar dos:
- Nativamente con PHP, mediante su librería ZipArchive
- Con librerías externas, como PclZip
Comprimiendo archivos en ZIP con PHP mediante ZipArchive
Si tu servidor tiene una versión superior a 5.2.0 y la extensión zip podemos hacer uso de ella.
Para saber si tenemos los requisitos, debemos usar la función phpinfo() en un archivo PHP y nos mostrará toda la información relativa al servidor.
Por ejemplo:
<?php phpinfo(); ?>
y debemos obtener una salida parecida a la siguiente:
Versión de PHP
ZIP activado
A continuación podemos usar la librería de la siguiente manera para comprimir los archivos a.txt y b.txt en el mismo archivo ZIP:
<?php $zip = new ZipArchive(); $filename = 'test.zip'; if($zip->open($filename,ZIPARCHIVE::CREATE)===true) { $zip->addFile('a.txt'); $zip->addFile('b.txt'); $zip->close(); echo 'Creado '.$filename; } else { echo 'Error creando '.$filename; } ?>teniendo especial cuidado en la ejecución para que tenga los permisos necesarios de escritura el archivo que comprime.
Comprimiendo archivos en ZIP con PHP mediante PclZip
En ocasiones no tenemos acceso a la instalación y modificación de paquetes y configuración de nuestro servidor, por lo que una buena opción es el uso de la librería PclZip.
Debemos descargar la librería y tras ello la guardaremos en una carpeta, por ejemplo lib.
<?php require('lib/pclzip.lib.php'); $zip = new PclZip('test.zip'); $zip->create('a.txt,b.txt'); ?>
Al igual que en el caso anterior, para crearlo deberemos tener permisos de ejecución.
Comentarios