Saltar al contenido

¿Cómo puedo descomprimir un archivo .gz con PHP?

El tutorial o código que hallarás en este post es la solución más eficiente y válida que hallamos a tu duda o problema.

Solución:

PHP en sí mismo tiene una serie de funciones para manejar archivos gzip.

Si desea crear un nuevo archivo sin comprimir, sería algo como esto.

Nota: Esto no comprueba si el archivo de destino existe primero, no elimina el archivo de entrada ni realiza ninguna comprobación de errores. Realmente debería corregirlos antes de usar esto en el código de producción.

// This input should be from somewhere else, hard-coded in this example
$file_name = 'file.txt.gz';

// Raising this value may increase performance
$buffer_size = 4096; // read 4kb at a time
$out_file_name = str_replace('.gz', '', $file_name);

// Open our files (in binary mode)
$file = gzopen($file_name, 'rb');
$out_file = fopen($out_file_name, 'wb');

// Keep repeating until the end of the input file
while(!gzeof($file)) 
    // Read buffer-size bytes
    // Both fwrite and gzread and binary-safe
    fwrite($out_file, gzread($file, $buffer_size));


// Files are done, close files
fclose($out_file);
gzclose($file);

Nota: Esto trata con gzip solamente. No trata con alquitrán.

gzopen es demasiado trabajo. Esto es más intuitivo:

$zipped = file_get_contents("foo.gz");
$unzipped = gzdecode($zipped);

funciona en páginas http cuando el servidor también escupe datos comprimidos con gzip.

Si tiene acceso al sistema():

system("gunzip file.sql.gz");

Si para ti ha sido de provecho nuestro artículo, nos gustaría que lo compartas con otros seniors y nos ayudes a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *