domingo, 27 de mayo de 2012

Comprimir y descomprimir archivos zip y tar con php y la liberia PclZip

Hoy me toco "jugar" un poco con php y las librerias de descompresión.

Buscando encontré PclZip una excelente libreria que ya lleva unos años en Internet, es útil para realizar de un suspiro las tareas de compresión y descompresión de archivos.


Para trabajar con esta clase lo primero que tenemos que hacer es bajar la libreria correspondiente:

Para trabajar con archivos ZIP:
http://www.phpconcept.net/pclzip/pclzip-downloads

Para trabajar con archivos TAR:
http://www.phpconcept.net/pcltar/downloads


Ejemplos para descomprimir zip

// Descomprimir en el directorio por defecto
require_once('pclzip.lib.php');
$archive = new PclZip("archivo.zip");
  if ($archive->extract() == 0) {
    die("Error : ".$archive->errorInfo(true));
  }
en este caso pongo como ejemplo wordpress porque cuando lo bajamos y descomprimimos normalmente nos aparece el directorio wordpress pero no queremos que este dentro de ese directorio sino en el root entonces indicamos los sigs. parámetros PCLZIP_OPT_PATH, '' ('' indica que no hay nombre de directorio donde se extraerán los archivos osea se van a extraer en el mismo directorio) PCLZIP_OPT_REMOVE_PATH, 'wordpress' (Elimina el nombre del directorio destino)
// Descomprimir eliminando el directorio original
require_once('pclzip.lib.php');
$archive = new PclZip("archivo.zip");
if ($archive->extract(PCLZIP_OPT_PATH, '',
                        PCLZIP_OPT_REMOVE_PATH, 'wordpress') == 0) {
    die("Error : ".$archive->errorInfo(true));
  }
Ejemplo de compresión zip
require_once('pclzip.lib.php');
  $archive = new PclZip('archive.zip');
  $v_list = $archive->add('prueba/texto.txt',
                          PCLZIP_OPT_REMOVE_PATH, 'dev');

Reacciones:

2 comentarios:

Anónimo dijo...

Hola, me encanta tu blog www.taller-de-scripts.com.ar. ¿Hay algo que pueda hacer para recibir actualizaciones, como una suscripción o cosa alguna? Lo siento que no estoy familiarizado con RSS?

Daniel dijo...

Hola podés suscribirte para recibir las notificaciones por email desde la caja que esta arriba a la derecha y también podés seguirme por facebook o twitter, saludos