Compresion de archivos

Solo disponible en BuenasTareas
  • Páginas : 5 (1151 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de junio de 2011
Leer documento completo
Vista previa del texto
COMPRESION Y EXTENSIONES DE ARCHIVOS CON PHP

Puede que en alguna ocasión tengamos que comprimir nuestros archivos (esto ya se ha tornado una actividad necesaria para el intercambio de estos en la web, ya que otorga mayor seguridad y fluidez en el traspaso), bien sea para almacenarlo de manera compacta y ordenada o para optimizar recursos ahorrando espacio en el Disco Duro.
Php no es laexcepción al ofrecer varias alternativas en la implementación de compresión y descompresión de archivos.
Por lo general, al momento de ejecutar la función (la que se esté usando en determinada situación), que comprime archivos con php, cabe la posibilidad de que se generen problemas con el nombre de la clase, ya que puede existir una extensión del servidor que esté usando el mismo nombre. Pero no haynada que no se pueda solucionar, consultando y haciendo uso de buenas técnicas de programación.
Referencia Web:
http://blog.undermedia.com.ec/index.php/comprimir-archivos-con-php/

COMPRESORES Y EXTENSIONES.
Para elegir una alternativa de compresión y descompresión, no caería nada mal hacer una pequeña comparación, donde se consideren las ventajas y limitaciones. Para ello se tomaran losmás usados:
Formato Gzip: Este formato puede realizar la compresión y descompresión de archivos, utilizando la librería Zlib, la cual nos proporciona funciones que nos permiten realizar este tipo de tareas:
Este es un ejemplo básico en donde se comprime y descomprime un archivo.
function descomprimir($origen, $destino) {
$string = implode(“”, gzfile($origen));
$fp = fopen($destino,“w”);
fwrite($fp, $string, strlen ($string));
fclose($fp);
}
function comprimir($origen, $destino) {
  $fp = fopen($origen, "r");
  $data = fread ($fp, filesize($origen));
  fclose($fp);
  $zp = gzopen($destino, "w9");
  gzwrite($zp, $data);
  gzclose($zp);
}
comprimir("archivo.txt","archivo.gz");
descomprimir("archivo.gz","archivo2.txt");
En la función descomprimir, básicamentelo que se realiza es abrir el archivo comprimido con la función gzfile y aplicarle un implode para obtener todas las líneas. Luego lo que se hace es crear un fichero donde se meterá el contenido del fichero comprimido.
Para la función comprimir, lo que se hace es leer el fichero que se quiere comprimir, y crear un fichero comprimido donde se irá escribiendo el contenido mediante la funcióngzwrite, similar a como trabaja la escritura de ficheros normal de php.
Esta es una breve descripción de las funciones para Gzip incluidas en la librería Zlib:
gzclose: Cierra un puntero gz-file.

gzcompress: Comprime una cadena de texto.

gzencode: Crea una cadena de texto comprimida en gzip.

gzeof: Verifica si es el fin del archivo en un puntero gz-file.gzfile: Lee el contenido de un archivo gzip y lo almacena en un arreglo.

gzgetc: Obtiene el caracter al que apunta un gz-file pointer.

gzgets: Obtiene la línea a la que apunta un gz-file pointer.

gzgetss: Obtiene la línea a la que apunta un gz-file pointer y remueve
las etiquetas HTML.

gzinflate: Descomprime una cadena comprimida.

gzopen: Abre un archivo gzip.Formato Bzip2: Es similar en comportamiento a Gzip, pero es de compresión más eficiente.
<?php

$filename = "/tmp/testfile.bz2";
$str = "Esto es una cadena de prueba.\n";

// Abriendo fichero para escribir
$bz = bzopen($filename, "w");

// escribe la cadena en el fichero
bzwrite($bz, $str);

// cierra el fichero
bzclose($bz);

// abre el fichero para escritura$bz = bzopen($filename, "r");

// lee 10 caracteres
echo bzread($bz, 10);

// muestra salida hasta el final del fichero (o los siguientes 1024 caracteres) y lo cierra.
echo bzread($bz);

bzclose($bz);

?>

Formato Zip: Esta extensión nos permite leer o escribir en formatos Zip, así como los archivos que se encuentran dentro de él.
En este caso se utiliza la clase ZipArchive:
function...
tracking img