Compter des fichiers

Signaler
Messages postés
12
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
26 avril 2010
-
Messages postés
12
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
26 avril 2010
-
Bonjour, j'utilise le script suivant pour compter le nombre de fichiers qu'il y a dans un dossier. Il fonctionne très bien sauf pour 0. Quand le dossier est vide le résultat est toujours 1. Quelqu'un peut-il m'aider ?

<?php
$files = glob("dossier/*.*");
$compteur = count($files);
echo " ($compteur)";
?>

Merci par avance.

8 réponses

Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

si tu es sous windows, il est possible qu'il y est le fichier Thumbs.db (fichier caché, pour le faire apparaitre, menu Outils, options des dossiers, puis onglet affichage et de-sélectionne Masquez les fichiers protégés du systéme d'exploitation) dans le répertoire (créer lors de l'affichage en vignette du répertoire)

bonne journée
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

Et si tu utilise
scandir("dossier/");
?


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Avec php 5, plus ca va plus je me rends compte que je peux optimiser mon ancien code php 4...

Moi j'utilisais encore le bon vieux

<?php
$dir = "/blabla";
$dh  = opendir($dir);
while (false !($filename readdir($dh))) {
    $files[] = $filename;
}
sort($files);
?>



_________________________________
Min iPomme
Messages postés
12
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
26 avril 2010

Avec scandir c'est pire, j'obtiens 2 à la place de 0 !
Messages postés
12
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
26 avril 2010

Bon j'ai résolu mon problème en faisant :

<?php
$files = scandir("dossier");
$compteur = count($files);
$compteur2 = $compteur - 2;
echo "$compteur2";
?>

Là tout fonctionne, mais je ne comprend pas pourquoi. Si quelqu'un peut m'éclairer.
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Avec scandir(), il prend en compte les folders "./" et "../"


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Euuuu c'est pas terrible ton truck

As tu vérifier ce que t'as dis 47 :
Il est possible que tu ai des fichiers cachés...

Si c'est le cas et que tu veux pas les compter, il vaut mieux faire un filtre... Style :

<?php
$dir = "/blabla";
$dh  = opendir($dir);
$i=0;
while (false !($filename readdir($dh))) {
    // On ne compte pas les fichiers cachés unix
    if($filename[0] != '.')
        $i++;
}
echo $i;
?>




_________________________________
Min iPomme
Messages postés
12
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
26 avril 2010

Merci ça marche super !!
Cela devait en effet être une histoire de fichiers cachés.

Merci encore !