Maison  >  Questions et réponses  >  le corps du texte

linux - méthode php pour décompresser le format de fichier .gz.

  1. Maintenant, j'ai obtenu le fichier .gz du projet via l'url

  2. Je souhaite traiter le contenu des fichiers compressés décompressés

  3. Maintenant, je connais un moyen, qui consiste à utiliser php pour appeler la commande système Linux tar pour décompresser puis traiter les données

Je voudrais demander à des amis s'ils l'ont déjà traité. Cela peut être géré par la fonction php !

C'est mon premier contact, n'hésitez pas à me donner quelques conseils !

黄舟黄舟2667 Il y a quelques jours917

répondre à tous(2)je répondrai

  • 仅有的幸福

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

    Support sonore original php, ce qui suit vient de 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);

    répondre
    0
  • 学习ing

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

    Fonction de décompression généralephp安装都自带tar的扩展包,这是我项目中tar, pour référence seulement

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

    Référez-vous également à : Trois façons de décompresser le format tar PHP
    Vous pouvez également l'exécuter via linux,在php中调用linux命令tar然后exec

    répondre
    0
  • Annulerrépondre