Dossier, ss-dossier et fichier PHP

Jayz -  
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je tente depuis une ou deux heures, sans succès, à créer une fonction afin d'obtenir les sous-dossier d'un dossier et le nombre de fichier que chaqu'un contient.

Plan :
./ (Racine)
./Icones
./Icones/L1/PNG
./Icones/L1/ICO
./Icones/L2/PNG

J'ai besoin que PHP affiche :
L1 (1550 fichiers)
...PNG (1000 fichiers)
...ICO (550 fichiers)
L2 (X fichiers)


Je connais déja opendir et readdir, mais je n'ai jamais travailler réellement avec ces fonctions.
Un ou une doué pourrais me programmer cela SVP?

Si vous passez à Montréal un jour, je vous offrirez un café en échange (mais pas le billet d'avion, ce n'ai pas dans mes moyens!)

Passez une excellente soirée cher(e)s ami(e)s!

A voir également:

2 réponses

Siluni
 
$repertoire = array();

function nb_doc($dir){
   $a = 0;
   $path = opendir ($dir);
    while (false !== ($file = readdir($path))){
         if ($file != "." && $file != ".."){ return 0; }
         
         elseif(is_file($dir.$file)){ return $a++; }

         else{ $a += nb_doc($dir.$file);
         
         $repertoire[$dir] = $a;

    }
    closedir($path);
}

nb_doc("./");

print_r($repertoire);


Je n'ai pas tester, mais sa devrait être quelque chose dans ce style :)
0
Siluni
 
J'ai oublier, apres le closedir => return $a;
0
Jayz
 
Merci beaucoup Siluni... Mais il y a quelque chose qui cloche et je ne trouve pas ce que c'est, la page php me retourne une page blanche... :(

Merci pour le return $a; je ne l'avais pas remarquer ;)

Si jamais tu as le temps de jeter encore un petit coup d'oeil pour voir ce qui cloche, sinon moi en attendant je continu de regarder.

Passe une bonne journée!
0
Jayz
 
Bon, j'ai un peu réussis :


$folders = array();
function nb_doc($dir){
global $folders;
$a = 0;

if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_file($dir.'/'.$file)) {
$a++;
}
if(is_dir($dir.'/'.$file)) {
$folders[$dir.'/'.$file] = nb_doc($dir.'/'.$file);
}
}
}
closedir($handle);
}
return $a;
}

nb_doc('./icons/');
print_r($folders);


Résultat :
Array (
[./icons//Real_Vista_Text/ICO] => 3600
[./icons//Real_Vista_Text/PNG] => 1438
[./icons//Real_Vista_Text] => 0
[./icons//test] => 1
[./icons//This is my new folder] => 0 )


Maintenant je dois tout simplement afficher sa sous forme de Menu Tree...

Merci beaucoup!!!
Et si jamais tu as d'autre améliorations ou conseils, ne te gêne pas! :)
:)
0
Jayz
 
Just epour faire suivre... je l'ai. Meric pour ton aide!
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
je voudrais juste dire un truc sur la recursivité
il semble que l on peut pas compter les fichiers en dehors de la fonction recursive à l'aide d une autre fonction...
par exemple pour cibler le type de fichier ou date de modification sans alourdir la boucle.
C est bizarre... L erreur retourné est ce que ce n est pas un repertoire est pourtant ...
0