Rechercher : dans
Par :

[PHP] fichier ZIP recuperer et decompresser

Dernière réponse le 21 jan 2008 à 16:13:38 bedomon, le 25 mai 2005 à 13:50:10 
 Signaler ce message aux modérateurs

J'ai un code en php pour decompresser un fichier zip il arrive a me le dezzipper malgré des erreurs dans le code et je voudrais l'ameliorer pour definir le repertoire de destination mais ca ne fonctionne pas. Si quelqu'un pouvait m'aider ou possede un script qui marche ?.????

Merci

Configuration: easyphp 1.8

Meilleures réponses pour « [PHP] fichier ZIP recuperer et decompresser » dans :
Fichier ZIP Voir Format ZIP Un fichier ZIP est un fichier compressé. Dans le cas de fichiers découpés, il peut être accompagné de fichiers dont les noms sont séquentiellement R01, R02, R03, R04, etc. Lire un fichier ZIP Pour décompresser un fichier ZIP, il...
[Linux] Compresser/Décompresser un fichier ZIP Voir Les fichiers ZIP sont généralement destinés à un usage sous Microsoft Windows. Le format de compression privilégié sous Linux est GZip (.gz) ou le format Tarball (.tar.gz). Il est néanmoins possible de compresser et décompresser des fichiers ZIP à...
Fichier GZ VoirFormat GZ Un fichier GZ (abbréviation de Gzip) est un fichier compressé. Comment lire un fichier GZ ? Pour décompresser un fichier GZ (ou un fichier .TAR.GZ), il suffit d'utiliser un des logiciels suivants : 7zip IceOWS PoweGZchiver iZarc TugZip
Fichier ACE VoirFormat ACE Un fichier ACE est un fichier compressé. Comment lire un fichier ACE ? Pour décompresser un fichier ACE, il suffit d'utiliser un des logiciels suivants : 7zip IceOWS PoweACEchiver iZarc TugZip
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

 summd5, le 21 jan 2008 à 16:13:38
  • +1

Voici un code source pour decompresser un fichier zip
<?php


function unzip($file, $path='', $effacer_zip=false)
{/*Méthode qui permet de décompresser un fichier zip $file dans un répertoire de destination $path
et qui retourne un tableau contenant la liste des fichiers extraits
Si $effacer_zip est égal à true, on efface le fichier zip d'origine $file*/

$tab_liste_fichiers = array(); //Initialisation

$zip = zip_open($file);

if ($zip)
{
while ($zip_entry = zip_read($zip)) //Pour chaque fichier contenu dans le fichier zip
{
if (zip_entry_filesize($zip_entry) > 0)
{
$complete_path = $path.dirname(zip_entry_name($zip_entry));

/*On supprime les éventuels caractères spéciaux et majuscules*/
$nom_fichier = zip_entry_name($zip_entry);
$nom_fichier = strtr($nom_fichier,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
$nom_fichier = strtolower($nom_fichier);
$nom_fichier = ereg_replace('[^a-zA-Z0-9.]','-',$nom_fichier);

/*On ajoute le nom du fichier dans le tableau*/
array_push($tab_liste_fichiers,$nom_fichier);

$complete_name = $path.$nom_fichier; //Nom et chemin de destination

if(!file_exists($complete_path))
{
$tmp = '';
foreach(explode('/',$complete_path) AS $k)
{
$tmp .= $k.'/';

if(!file_exists($tmp))
{ mkdir($tmp, 0755); }
}
}

/*On extrait le fichier*/
if (zip_entry_open($zip, $zip_entry, "r"))
{
$fd = fopen($complete_name, 'w');

fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));

fclose($fd);
zip_entry_close($zip_entry);
}
}
}

zip_close($zip);

/*On efface éventuellement le fichier zip d'origine*/
if ($effacer_zip === true)
unlink($file);
}

return $tab_liste_fichiers;
}

/**********************************************************/

$liste = array();

$liste = unzip('util.zip','util/');

echo 'Le fichier zip contenait '.count($liste).' fichier(s) :<br />';

foreach ($liste as $nom_fichier)
{
echo $nom_fichier.'<br />';
}

?>

Répondre à summd5