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
http://Www.phpconcept.net/pclzip/man/en/index.php?toc . 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¨);
?>
http://Www.webintenta.com/Files/Images/v8/PHPZip/PHPZip.rar