Web Development Knowledge Base
| |
Sections :
RSS Feed You too, please publish your useful code snippets in any programming language : write an article ! Plateforme d'envoi de gros fichiers en ligne Dépannage site web Blog infogérance Hébergement e-mail |
Aurélie Dufour - - 02/04/2008 - vue 7791 fois
Extraire le contenu d'un dossier ZIP en PHPLe principe de ce tuto : il arrive que des applications stockent automatiquement sur des serveurs des dossiers ZIP. Ces dossiers compressés contiennent parfois des fichiers textes, dont le contenu peut servir pour alimenter une base de données par exemple... Il faut donc décompresser le dossier avant toute chose : plutôt que de développer toute une fonction PHP pour ça, je vous propose de télécharger la librairie PHP PclZip à cette adresse : www.phpconcept.net/download.php. Décompressez le dossier et placez les 3 fichiers qu'il contient dans le même répertoire que celui qui contient vos archives ZIP. Le code ci-dessous vous permet de parcourir un dossier et d'en extraire tous les documents des dossiers ZIP qu'il contient. Une partie de manipulation/traitement des documents est à ajouter selon vos besoins. Comme je suppose que nous travaillons sur un serveur, on ne conserve pas après le dossier décompressé (pour une question de place). En revanche, on peut le déplacer dans un dossier 'archives', pour ne pas le perdre définitivement : <?php //on inclut la librairie de dézippage : include('pclzip.lib.php'); //ICI ENTRE "", METTRE LE CHEMIN VERS LE REPERTOIRE CONTENANT LES DOSSIERS ZIP : //ici, le point indique que c'est le dossier courant $dirParent = opendir("."); while($folder = readdir($dirParent)) { //on cherche tout ce qui est en ".zip" $tabloFile = explode('.',$folder); //si c'est un dossier ZIP on le décompresse : if($tabloFile[1] == 'zip') { $archive = new PclZip($folder); //gestion des erreurs ici : si le dézippage se met mal, on affiche un message d'erreur if ($archive->extract(PCLZIP_OPT_PATH, $folder, PCLZIP_OPT_REMOVE_PATH, '/') == 0) { die("Error : ".$archive->errorInfo(true)); } //sinon on confirme que ça s'est bien passé : else echo "Dossier dézippé !<br />"; //ici le traitement des fichiers du dossier dézippé (je ne mets qu'une p'tite phrase) : echo "Ici le traitement des fichiers comme vous l'entendez..."; //une fois décompressé, on extrait les données utiles du dossier //on déplace le zip qui ne sert plus à rien dans un dossier "archives" if(!is_dir('archives'))mkdir('archives'); rename($folder,'archives/'.$folder); } } closedir($dirParent); ?> |
Nos partenaires : iPhone 8 Cases & Protection |