web-dev-qa-db-fra.com

Comment puis-je extraire ou décompresser un fichier gzip en utilisant php?

function uncompress($srcName, $dstName) {
    $sfp = gzopen($srcName, "rb");
    $fp = fopen($dstName, "w");

    while ($string = gzread($sfp, 4096)) {
        fwrite($fp, $string, strlen($string));
    }
    gzclose($sfp);
    fclose($fp);
}

J'ai essayé ce code mais cela ne fonctionne pas, j'obtiens:

Erreur de serveur interne
Le serveur a rencontré une erreur interne ou une mauvaise configuration et n'a pas pu répondre à votre demande. Veuillez contacter l'administrateur du serveur, [email protected] et l'informer de l'heure à laquelle l'erreur s'est produite et de tout ce que vous pourriez avoir fait qui pourrait avoir causé l'erreur. Plus d'informations sur cette erreur peuvent être disponibles dans le journal des erreurs du serveur.
De plus, une erreur 404 introuvable a été rencontrée lors de la tentative d'utilisation d'un document d'erreur pour gérer la demande.

30

Essayez ceci trouvé ici

//This input should be from somewhere else, hard-coded in this example
$file_name = '2013-07-16.dump.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);
68
Vasu