Comptage de fichiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 716 fois - Téléchargée 28 fois

Contenu du snippet

Code pour compter les fichiers d'un répertoire...

Paramètres:
$folder = repertoire de comptage
$ext = extension dont les fichiers sont comptés (peut être un tableau) (sans le . : jpg par exemple) (nombre de caractères variable, càd html aussi valable, mais gare à vous si vous utilisez des fichiers sans extension, vous voici prévenus, :D)
$subfolders = comptage dans les sous repertoires (true ou false) (1 ou 0 si vraiment vous le voulez, ^^ )

Retour:
Nombre de fichier

Source / Exemple :


function count_files($folder, $ext, $subfolders)
{
   // on rajoute le / à la fin du nom du dossier s'il ne l'est pas
   if(substr($folder, -1) != '/')
      $folder .= '/';
   
   // $ext est un tableau?
   $array = false;
   if(is_array($ext))
      $array = true;

   // ouverture du répertoire
   $rep = @opendir($folder);
   if(!$rep)
      return -1;
      
   $nb_files = 0;
   // tant qu'il y a des fichiers
   while($file = readdir($rep))
   {
      // répertoires . et ..
      if($file == '.' || $file == '..')
         continue;
      
      // si c'est un répertoire et qu'on peut le lister
      if(is_dir($folder . $file) && $subfolders)
          // on appelle la fonction
         $nb_files += count_files($folder . $file, $ext, 1);
      // vérification de l'extension avec $array = 0
      else if(!$array && substr($file, -strlen($ext)) == $ext)
         $nb_files++;
      // vérification de l'extension avec $array = true   
      else if($array && in_array(substr($file, strrpos($file, '.') + 1), $ext))
         $nb_files++;
   }
   
   // fermeture du rep
   closedir($rep);
   return $nb_files;
}

A voir également

Ajouter un commentaire

Commentaires

coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3 -
Salut!
Oui, tu peux changer:
else if(!$array && substr($file, -strlen($ext)) == $ext)
$nb_files++;
// vérification de l'extension avec $array = true
else if($array && in_array(substr($file, strrpos($file, '.') + 1), $ext))
$nb_files++;

en
else if(!$array && substr($file, -strlen($ext)) == $ext)
{
$nb_files++;
echo $folder , $file , '
';
}
// vérification de l'extension avec $array = true
else if($array && in_array(substr($file, strrpos($file, '.') + 1), $ext))
{
$nb_files++;
echo $folder , $file , '
';
}

A plus et bonnes fêtes de fin d'année!

Raf
cs_meryyy
Messages postés
31
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
30 décembre 2008
-
salut , trés bonne source !!!!
mais , est ce que c'est possible d'afficher le nom de ces fichiers ?
merci
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
Si mon fichier est "atxt" (sans extension) et que je fais une recherche par array contenant une extension de type txt, le code va compter ce fichier.

Par définition, un fichier avec une extension .txt ou .TxT ou .TXT ou autre est la même chose, donc je crois qu'il faudrait faire une comparaison insensible à la casse...
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3 -
Ca doit être bon, là, :)

@++

R@f
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
attention... si fichier sans extension, tout le monde l'oublie !
(mais euh tu ne l'as pas changé dans la source ? pas encore ?)

Et ca serait plus propre mettre un true false à $array plutôt qu'un int 0 ou 1... (changer le commentaire aussi ;))

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.