linux - kaedah php untuk menyahmampat format fail .gz.
黄舟
黄舟 2017-06-08 11:01:56
0
2
989
  1. Kini saya telah memperoleh fail .gz projek melalui url

  2. Saya mahu memproses kandungan fail mampat yang dinyahmampat

  3. Sekarang saya tahu satu cara, iaitu menggunakan php untuk memanggil perintah sistem linux tar untuk menyahmampat dan kemudian memproses data

Saya ingin bertanya kepada rakan-rakan jika mereka pernah berurusan dengannya sebelum ini.

Ini adalah kenalan pertama saya, sila beri saya nasihat!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(2)
仅有的幸福

php sokongan bunyi asal, berikut adalah dari SO

// 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);
学习ing

Generalphp安装都自带tar的扩展包,这是我项目中tarfungsi penyahmampatan, untuk rujukan sahaja

function get_files_name_in_tar($file) {
    require_once 'Archive/Tar.php';
    $ext = get_file_extension($file);
    $tar_handle = null;
    if ($ext === "bz2") {
        $tar_handle = new Archive_Tar($file, "bz2");
    } else if ($ext === "gz") {
        $tar_handle = new Archive_Tar($file, "gz");
    } else if ($ext === "tar") {
        $tar_handle = new Archive_Tar($file);
    } else {
        return false;
    }    
    if (!$tar_handle) {
        return false;
    }    
    $entry_names = $tar_handle->listContent();

    return array_column($entry_names, 'filename');
}

Juga rujuk: Tiga cara untuk menyahmampat format tar PHP
Anda juga boleh melaksanakannya melalui linux,在php中调用linux命令tar然后exec

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan