2010-07-20 159 views

Respuesta

2

Download the Unzip library e incluir o autoload la biblioteca unzip

$this->load->library('unzip'); 
+0

Los enlaces están muertos ... déjenme encontrar los enlaces si puedo y actualizar esto – fedmich

3

Use las funciones implementadas por la extensión Zlib Compression.

Este ejemplo muestra cómo utilizar algunas de las funciones puestas a disposición de la extensión:

// open file for reading 
$zp = gzopen($filename, "r"); 

// read 3 char 
echo gzread($zp, 3); 

// output until end of the file and close it. 
gzpassthru($zp); 
gzclose($zp); 
36

PHP en sí tiene una serie de funciones para hacer frente a los ficheros 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 o realiza una comprobación de errores. Deberías 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 se refiere a gzip única. No trata con alquitrán.

+1

Utilicé este código y funciona correctamente. solo pregunta cómo hacer que funcione con las carpetas dentro del archivo gz y cómo mostrar la carpeta de salida de los archivos extraídos. –

+1

@RealMan gzip solo es compatible con archivos individuales. Necesitas un .tar.gz para múltiples archivos. No estoy seguro si PHP tiene soporte integrado para tar o no. – Powerlord

3

Si usted tiene acceso al sistema():

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

Debería funcionar, pero la mayoría de las veces el sistema() se desactivará debido a razones de seguridad – fedmich

Cuestiones relacionadas