PclZip es una clase que puede ser utilizada para crear y extraer ficheros zip. Puede crear ficheros ZIP desde una lista de ficheros y también puede incluir o excluir directorios de la lista de ficheros. La clase también dispone de métodos para añadir archivos a ficheros zip creados, duplicar ficheros, unirlos o eliminarlos.El uso es bastante sencillo. En el siguiente ejemplo se crea un fichero ¨Nombre_Fichero.zip¨ a partir de cuatro ficheros de texto.
<?php
require_once (´pclzip.lib.php´);$ListaArchivos = ¨texto1.txt,texto2.txt,texto3.txt,texto4.txt¨;
$archivo_zip = new PclZip (´Nombre_Fichero.zip´);
if ($archivo_zip->create ($ListaArchivos) == 0) {
die (´Error : ´.$archivo_zip->errorInfo (true));
}
?>
Con el método listContent() podemos obtener un listado con los ficheros incluidos en el zip y los detalles para cada uno de ellos. Ejemplo:
<?php
require_once (´pclzip.lib.php´);
$ListaArchivos = ¨texto1.txt,texto2.txt,texto3.txt,texto4.txt¨;
$archivo_zip = new PclZip (´Nombre_Fichero.zip´);
// CREAMOS EL ZIP
if ($archivo_zip->create ($ListaArchivos) == 0) {
die (´Error : ´.$archivo_zip->errorInfo (true));
}
// VEMOS EL CONTENIDO DEL ZIP
if (($list = $archivo_zip->listContent ()) == 0) {
die (¨Error : ¨.$archivo_zip->errorInfo (true));
}
for ($i=0; $i<sizeof ($list); $i++) {
for (reset ($list[$i]); $key = key ($list[$i]); next ($list[$i])) {
echo ¨File $i / [$key] = ¨.$list[$i][$key].¨<br>¨;
}
echo ¨<br>¨;
}
?>
Lo que nos devolvería algo como:
File 0 / [filename] = texto1.txt
File 0 / [stored_filename] = texto1.txt
File 0 / [size] = 3621
File 0 / [compressed_size] = 1293
File 0 / [mtime] = 1232091978
File 0 / [comment] =
File 0 / [folder] =
File 0 / [index] = 0
File 0 / [status] = ok
File 0 / [crc] = -1672123651
File 1 / [filename] = texto2.txt
File 1 / [stored_filename] = texto2.txt
File 1 / [size] = 2573
File 1 / [compressed_size] = 1071
File 1 / [mtime] = 1232091810
File 1 / [comment] =
File 1 / [folder] =
File 1 / [index] = 1
File 1 / [status] = ok
File 1 / [crc] = -1042150334
.............
.............
.............
La clase dispone de muchas opciones para trabajar con este tipo de ficheros. Para obtener una información más detallada puedes consultar el Manual Oficial. Por último indicar que si lo que deseamos es crear un fichero zip ¨al vuelo¨ y forzar a su descarga lo único que deberíamos hacer es añadir la cabecera correspondiente:
<?php
header (¨Content-type: application/octet-stream¨);
require_once (´pclzip.lib.php´);
$ListaArchivos = ¨texto1.txt,texto2.txt,texto3.txt,texto4.txt¨;
$archivo_zip = new PclZip (´Nombre_Fichero.zip´);
if ($archivo_zip->create ($ListaArchivos) == 0) {
die (´Error : ´.$archivo_zip->errorInfo (true));
}
header (¨Content-disposition: attachment; filename=Nombre_Fichero.zip¨);
?>
DESCARGAR
http://Www.webintenta.com/Files/Images/v8/PHPZip/PHPZip.rar