Dossier, ss-dossier et fichier PHP
Jayz
-
Fallentree Messages postés 2309 Date d'inscription Statut Membre Dernière intervention -
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!
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:
- Dossier, ss-dossier et fichier PHP
- Dossier appdata - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Impossible de supprimer un dossier - Guide
- Dossier démarrage - Guide
2 réponses
$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 :)
Siluni
J'ai oublier, apres le closedir => return $a;
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!
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!
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! :)
:)
$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! :)
:)
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 ...
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 ...