ver txt online mac generar descomprimir descargar crear con como archivos archivo php gzip compression gz

txt - ¿Cómo se crea un archivo.gz usando PHP?



generar txt con php y descargar (6)

Además, podrías usar wrappers de php, los de compresión . Con un cambio mínimo en el código, podrá cambiar entre gzip, bzip2 o zip.

$input = "test.txt"; $output = $input.".gz"; file_put_contents("compress.zlib://$output", file_get_contents($input));

cambie compress.zlib:// a compress.zip:// para compress.zip:// zip (vea el comentario a esta respuesta sobre compresión zip) , o para compress.bzip2:// a compresión bzip2.

Me gustaría comprimir gzip un archivo en mi servidor usando PHP. ¿Alguien tiene un ejemplo que ingrese un archivo y genere un archivo comprimido?


Este código hace el truco

// Name of the file we''re compressing $file = "test.txt"; // Name of the gz file we''re creating $gzfile = "test.gz"; // Open the gz file (w9 is the highest compression) $fp = gzopen ($gzfile, ''w9''); // Compress the file gzwrite ($fp, file_get_contents($file)); // Close the gz file and we''re done gzclose($fp);


Las otras respuestas aquí cargan todo el archivo en la memoria durante la compresión, lo que provocará errores de " memoria insuficiente" en archivos grandes. La función a continuación debería ser más confiable en archivos grandes a medida que lee y escribe archivos en fragmentos de 512 kb.

/** * GZIPs a file on disk (appending .gz to the name) * * From http://.com/questions/6073397/how-do-you-create-a-gz-file-using-php * Based on function by Kioob at: * http://www.php.net/manual/en/function.gzwrite.php#34955 * * @param string $source Path to file that should be compressed * @param integer $level GZIP compression level (default: 9) * @return string New filename (with .gz appended) if success, or false if operation fails */ function gzCompressFile($source, $level = 9){ $dest = $source . ''.gz''; $mode = ''wb'' . $level; $error = false; if ($fp_out = gzopen($dest, $mode)) { if ($fp_in = fopen($source,''rb'')) { while (!feof($fp_in)) gzwrite($fp_out, fread($fp_in, 1024 * 512)); fclose($fp_in); } else { $error = true; } gzclose($fp_out); } else { $error = true; } if ($error) return false; else return $dest; }


Probablemente sea obvio para muchos, pero si alguna de las funciones de ejecución del programa está habilitada en su sistema ( exec , system , shell_exec ), puede usarlas para simplemente gzip el archivo.

exec("gzip ".$filename);


Si está buscando simplemente descomprimir un archivo, esto funciona y no causa problemas con la memoria:

$bytes = file_put_contents($destination, gzopen($gzip_path, r));


Simple un trazador de líneas con gzencode() :

gzencode(file_get_contents($file_name));