How can I unzip a .gz file with PHP?

后端 未结 6 1025
南旧
南旧 2020-12-14 11:06

I\'m using CodeIgniter and I can\'t figure out how to unzip files!

6条回答
  •  萌比男神i
    2020-12-14 11:42

    PHP itself has a number of functions for dealing with gzip files.

    If you want to create a new, uncompressed file, it would be something like this.

    Note: This doesn't check if the target file exists first, doesn't delete the input file, or do any error checking. You really should fix those before using this in production code.

    // 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);
    

    Note: This deals with gzip only. It doesn't deal with tar.

提交回复
热议问题