[PHP] lister dossier et fichier séparément
Résolu/Fermé
zecka
Messages postés
115
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
2 décembre 2015
-
16 avril 2011 à 18:39
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 21 avril 2011 à 15:39
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 21 avril 2011 à 15:39
A voir également:
- [PHP] lister dossier et fichier séparément
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Dossier appdata - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
ktm620enduro
Messages postés
293
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
12 mars 2013
38
Modifié par ktm620enduro le 16/04/2011 à 18:43
Modifié par ktm620enduro le 16/04/2011 à 18:43
<?php function scanDirectories($rootDir, $allData=array()) { // set filenames invisible if you want $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd"); // run through content of root directory $dirContent = scandir($rootDir); foreach($dirContent as $key => $content) { // filter all files not accessible $path = $rootDir.'/'.$content; if(!in_array($content, $invisibleFileNames)) { // if content is file & readable, add to array if(is_file($path) && is_readable($path)) { // save file name with path $allData[] = $path; // if content is a directory and readable, add path and name }elseif(is_dir($path) && is_readable($path)) { // recursive callback to open new directory $allData = scanDirectories($path, $allData); } } } return $allData; } ?>
Exemple:
print_r(scanDirectories("www")); retourne
--- Array ( [0] => www/index.php [1] => www/admin.php [3] => www/css/css.css [4] => www/articles/2007/article1.txt [4] => www/articles/2006/article1.txt [8] => www/img/img1.png )
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
Bilow
Messages postés
1022
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
Modifié par Bilow le 16/04/2011 à 23:25
Modifié par Bilow le 16/04/2011 à 23:25
Salut,
Tu crées une fonction qui liste et trie les dossiers :
Et tu crées une fonction listeFichiers(), exactement la même, mais tu remplaces is_dir par is_file.
Ces fonctions sont simples, tu peux le faire récursivement (si c'est un dossier tu rappelles la fonction listeDossier($chemin.$f); ).
Attention, beaucoup de personnes font l'erreur d'utiliser is_dir($f) ou is_file($f). Il ne faut surtout pas oublier d'y ajouter le chemin du dossier ouvert avec opendir().
Ps : Tu peux combiner les deux fonctions en mettant un else à if(is_dir(..)). Ce sera plus pratique.
;-)
Tu crées une fonction qui liste et trie les dossiers :
function listeDossiers($chemin){ $dossier = opendir($chemin); // On ouvre le dossier if($dossier){ // Si ca marche while($f = readdir($dossier)){ // On liste fichiers et dossiers if(is_dir($chemin.$f)){ echo "Dossier : $f"<br>"; } } } }
Et tu crées une fonction listeFichiers(), exactement la même, mais tu remplaces is_dir par is_file.
Ces fonctions sont simples, tu peux le faire récursivement (si c'est un dossier tu rappelles la fonction listeDossier($chemin.$f); ).
Attention, beaucoup de personnes font l'erreur d'utiliser is_dir($f) ou is_file($f). Il ne faut surtout pas oublier d'y ajouter le chemin du dossier ouvert avec opendir().
Ps : Tu peux combiner les deux fonctions en mettant un else à if(is_dir(..)). Ce sera plus pratique.
;-)
zecka
Messages postés
115
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
2 décembre 2015
28
21 avril 2011 à 15:39
21 avril 2011 à 15:39
Merci de votre aide, j'ai finalement réussi a faire ce que je voulais !!!