Zlib es una librería PHP que nos permite realizar operaciones de creacción y manejo de archivos comprimidos Gzip de una forma sencilla.
Primero de todo tenemos que asegurarnos de tener instalado el módulo Zlib en nuestro servidor. Podemos comprobarlo haciendo:
if ( function_exists('gzwrite') ) { echo "gzip: OK"; }
Si la verificación es correcta, y tenemos el módulo Zlib instalado, ya podemos manejar ficheros Gzip en nuestro servidor mediante PHP.
Y vamos a ver un par de ejemplos sencillos que nos muestran cómo comprimir y descomprimir ficheros Gzip en PHP:
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"); function descomprimir($origen, $destino) { $string = implode("", gzfile($origen)); $fp = fopen($destino, "w"); fwrite($fp, $string, strlen($string)); fclose($fp); } descomprimir("archivo.gz", "archivo2.txt");
Existen más funciones disponibles en la librería Zlib:
gzopen
— abre un archivo gzip
gzclose
— cierra un puntero gz-file
gzcompress
— comprime una cadena de texto
gzinflate
— descomprime una cadena previamente comprimida
gzencode
— crea una cadena de texto comprimida en gzip
gzeof
— verifica si es el fin de fichero (eof) 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 puntero gz-file
gzgets
— obtiene la linea a la que apunta un puntero gz-file
gzgetss
— obtiene la linea a la que apunta un puntero gz-file y elimina las etiquetas HTML
Más información en php.net