Page 1 sur 1

Dezipper une archive en conservant l'arborescence

Posté : 28 mai 2012, 18:55
par squallblanc
Bonjour, voila je suis confronté à un problème (encore me direz vous... :D ) avec la fonction unzip.
J'ai récuperé un script qui fonctionne parfaitement quand l'archive contient un seul fichier mais pas quand celle-ci à 385 fichiers et sous dossiers.
Je cherche à modifier ce bout de code pour qu'il dezippe mon archive et surtout qu'il conserve l'arborescence.
le code :
			function unzip($file, $path='', $effacer_zip=false)
			{
			$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 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);
			}
			return $tab_liste_fichiers;
			}
			/**********************************************************/
			$liste = array();
			$liste = unzip('../archive/latest.zip','../../comptes/'.valideChaine($_POST['societe']).'/');
			echo 'Le fichier zip contenait '.count($liste).' fichier(s) :<br />';
			foreach ($liste as $nom_fichier)
			{
			echo $nom_fichier.'<br />';
			}
Qu'elle partie dois je modifier pour extraire tout mes fichier avec leurs l'arborescence?
merci

Re: Dezipper une archive en conservant l'arborescence

Posté : 29 mai 2012, 10:52
par Maitrepylos
Tu veux donc afficher un arbre.

Il va falloir te faire un peu de lecture http://julien-pauli.developpez.com/tutoriels/php/spl/

Bonne lecture et apprentissage :)

Re: Dezipper une archive en conservant l'arborescence

Posté : 02 juin 2012, 09:34
par sirakawa
Munis-toi d'une boussole avant de te lancer dans cette lecture.

Re: Dezipper une archive en conservant l'arborescence

Posté : 15 juil. 2012, 02:05
par soucalex
Bonjour,
Tu trouveras ta réponse sur ce lien-là !

http://www.siteduzero.com/forum-83-2141 ... a-php.html

A+

Re: Dezipper une archive en conservant l'arborescence

Posté : 15 juil. 2012, 02:09
par soucalex