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