Rumah  >  Soal Jawab  >  teks badan

linux - kaedah php untuk menyahmampat format fail .gz.

  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!

黄舟黄舟2667 hari yang lalu915

membalas semua(2)saya akan balas

  • 仅有的幸福

    仅有的幸福2017-06-08 11:03:56

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

    balas
    0
  • 学习ing

    学习ing2017-06-08 11:03:56

    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

    balas
    0
  • Batalbalas