Titre: Comptage de fichiers
Date: Juin 2004
Language: PHP
Description: Code permettant de compter les fichiers d’un répertoire et éventuellement de ses sous-répertoires.
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)
Retour:
– nombre de fichier
– -1 en cas d’erreur
Il existe des solutions plus performantes que ce script avec l’évolution de PHP. Cependant, ce script est utile pour apprentissage.
<?php 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 ) ) !== false ) { // 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; } ?>
Exemple:
Pour compter tous les fichiers .jpg des répertoires et sous répertoires du dossier courant (dossier où se trouve le script):
<?php echo count_files( '.', array( 'jpg', 'jpeg' ), 1 ); ?>
Laisser un commentaire