OVH Cloud OVH Cloud

[Q] Basique : dossiers et fichiers

5 réponses
Avatar
ASM
Salutatous,

Après avoir arpenté en tous sens php.net,
pour simplement pouvoir connaître le nombre de fichiers contenus par un
dossier j'en suis venu à faire une boucle sur ce contenu

Parmi les 3012 fonctions dédiées aux files and reps
il n'y a pas une petite fonction php pour récupérer cette info ?
gengre dirnbf($mon_rep)

à moins que count(opendir($nom_rep)) ne soit ce que je cherche ?
Si cela est, il me faut refermer le dossier aussitôt après, non?
closedir($mon_rep);

--
Stephane Moriaux et son [moins] vieux Mac

5 réponses

Avatar
Olivier Miakinen

Après avoir arpenté en tous sens php.net,
pour simplement pouvoir connaître le nombre de fichiers contenus par un
dossier j'en suis venu à faire une boucle sur ce contenu


C'est ce que j'ai toujours fait moi aussi. En éliminant les répertoires
"." et ".." lors de mon compte (mais il suffirait de soustraire 2 au
résultat).

Parmi les 3012 fonctions dédiées aux files and reps
il n'y a pas une petite fonction php pour récupérer cette info ?
genre dirnbf($mon_rep)

à moins que count(opendir($nom_rep)) ne soit ce que je cherche ?


Suite à ta question je suis retourné voir la doc. Comme tu sembles un
peu perdu dans cette doc, voici comment j'ai procédé.

Dans mon navigateur favori, j'ai commencé par taper http://www.php.net,
puis sachant que la fonction opendir est un bon point de départ j'ai
complété ainsi :
http://www.php.net/opendir

En appuyant sur la touche ENTRÉE, le site a trouvé aussitôt la bonne
page, qui plus est la version française puisque mon navigateur est
configuré pour préférer le français à l'anglais. Je me suis donc
retrouvé sur :
http://fr.php.net/opendir

Note que j'aurais pu passer par le menu, choisir « documentation », puis
« french », et je me serais retrouvé au même endroit, mais avec une url
un peu plus longue :
http://fr.php.net/manual/fr/function.opendir.php

À partir de la page de doc sur opendir, je peux aller vers les pages
voisines, qui sont sur chdir, chroot, dir, closedir, getcwd, readdir,
rewinddir et scandir. La dernière, scandir, est une fonction que je ne
connaissais pas. Je clique dessus :
http://fr.php.net/manual/fr/function.scandir.php

Et là, c'est l'illumination : ça semble faire exactement ce que tu
voulais, avec « count(scandir($mon_rep)) » (-2 si tu ne veux pas
compter "." et ".."). Le seul hic, c'est que ça n'existe qu'en PHP5.
Mais comme ils sont sympas, l'« exemple 2 » donne l'équivalent en
PHP4 pour si tu as une vieille version.


Cordialement,
--
Olivier Miakinen

Avatar
ASM

Après avoir arpenté en tous sens php.net,
pour simplement pouvoir connaître le nombre de fichiers contenus par un
dossier j'en suis venu à faire une boucle sur ce contenu


C'est ce que j'ai toujours fait moi aussi. En éliminant les répertoires
"." et ".." lors de mon compte (mais il suffirait de soustraire 2 au
résultat).
(snip)

Comme tu sembles un
peu perdu dans cette doc, voici comment j'ai procédé.


:-)

J'ai 3 ou 4 liens-boutons installés dans mon bookmark pour faire çà
aller à peu-près là où est (ou pas loin de) ce que je cherche.

complété ainsi :
http://www.php.net/opendir


Tu as donc une idée de comment s'appelle la fonction ...
Je n'en suis pas là :-(
Et si je tape : 'create file' ou bien 'créer fichier' dans le champ de
recherche on me répond que cette fonction 'create' n'existe pas ... :-(

(re snip)

Et là, c'est l'illumination : ça semble faire exactement ce que tu
voulais, avec « count(scandir($mon_rep)) »


J'ai dû fatiguer !
car je suis allé voir ce scanneur sans y voir de miracle.

Le seul hic, c'est que ça n'existe qu'en PHP5.


ha! cela a dû me refroidir.

Mais comme ils sont sympas, l'« exemple 2 » donne l'équivalent en
PHP4 pour si tu as une vieille version.


Bon, on y re-go.

Néanmoins, avec ttes ces fonctions hyper spécialisées dont quelques-unes
sont des doublons, pourquoi n'ont-ils pas celle qui me manque, hein ?
Z'auraient pu penser que j'allais passer la leur demander.

Cordialement.

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Florian Sinatra
*Olivier Miakinen* @ 25/05/2006 00:41 :
Et là, c'est l'illumination : ça semble faire exactement ce que tu
voulais, avec « count(scandir($mon_rep)) » (-2 si tu ne veux pas
compter "." et ".."). Le seul hic, c'est que ça n'existe qu'en PHP5.
Mais comme ils sont sympas, l'« exemple 2 » donne l'équivalent en
PHP4 pour si tu as une vieille version.


Pourquoi pas glob('*.*') ? <http://ch2.php.net/manual/fr/function.glob.php>
Dispo dès PHP 4.3, renvoie un tableau des fichiers qui vérifient le
masque pattern, avec * joker.
En ajoutant GLOB_ONLYDIR comme argument, il ne retourne que les dossiers.

Avatar
ASM
*Olivier Miakinen* @ 25/05/2006 00:41 :

Et là, c'est l'illumination : ça semble faire exactement ce que tu
voulais, avec « count(scandir($mon_rep)) » (-2 si tu ne veux pas
compter "." et ".."). Le seul hic, c'est que ça n'existe qu'en PHP5.
Mais comme ils sont sympas, l'« exemple 2 » donne l'équivalent en
PHP4 pour si tu as une vieille version.



Pourquoi pas glob('*.*') ? <http://ch2.php.net/manual/fr/function.glob.php>
Dispo dès PHP 4.3, renvoie un tableau des fichiers qui vérifient le
masque pattern, avec * joker.
En ajoutant GLOB_ONLYDIR comme argument, il ne retourne que les dossiers.


Oui, mmais moi perso, je ne veux que le *nombre* des fichiers
et je ne comprends pas que le php sait fournir x mille fonctions pour
traiter des fichiers et dossiers et n'a pas celle là.

Qu'on prenne readdir, opendir, scandir ou glob
il faudra de tte façon une boucle pour me sortir le nombre des fichiers.

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Florian Sinatra
*ASM* @ 25/05/2006 19:51 :

Qu'on prenne readdir, opendir, scandir ou glob
il faudra de tte façon une boucle pour me sortir le nombre des fichiers.


count(glob('*.*')) c'est une boucle ?