Nombre de fichiers dans un répertoire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 872 fois - Téléchargée 31 fois

Contenu du snippet

Cette fonction retourne le nombre de fichiers situés dans le répertoire spécifié $dir.
Elle ne prend pas en compte les sous-répertoires.

Exemple d'utilisation :
// Assigne à la variable $num_images le nombre de fichiers contenus dans le répertoire "site/images"
$num_images = count_files("site/images");

Source / Exemple :


function count_files($dir)
{
	$num = 0;
	
	$dir_handle = opendir($dir);
	while($entry = readdir($dir_handle))
		if(is_file($dir.'/'.$entry))
			$num++;
	closedir($dir_handle);

	return $num;
}

Conclusion :


Vous pouvez spécifier un chemin de répertoire commençant par http://, ftp://,... si vous avez les droits nécessaires à la lecture des répertoires situés à distance.

A voir également

Ajouter un commentaire Commentaires
reynum Messages postés 7 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 12 juillet 2011
16 juil. 2011 à 15:36
Bon je vais faire un truc simple et complet :

$rep="mon_repertoire_a_analyser/";//répertoire à parcourir (celui dans lequel tout va ce passer)

$elements_voulus = count(glob($rep."*"));//compte le nombre d'éléments (fichiers et répertoires) présent
$elements_voulus = count(glob($rep."*.html"));//compte le nombre de fichiers ayant l'extension .html
$elements_voulus = count(glob($rep."nouveau*.*"));//compte le nombre d'éléments dont le nom commence par nouveau et qui contient un point
$elements_voulus = count(glob($rep."nouveau*"));//compte le nombre d'éléments dont le nom commence par nouveau
$elements_voulus = count(glob($rep."*",GLOB_ONLYDIR));//compte le nombre de répertoires
$elements_voulus = count(glob($rep."*super*"));//compte le nombre d'éléments dont le nom contient super

//on peut faire des combinaisons
$elements_voulus = count(glob($rep."*super*.html"));//compte le nombre de fichiers .html dont le nom contient super
$elements_voulus = count(glob($rep."*"))-count(glob($rep."*",GLOB_ONLYDIR));//compte le nombre totel d'éléments et enlève le nombre de dossiers

//bien sûr on peut faire beaucoup plus de chose
//une boc en français :
//http://php.net/manual/fr/function.glob.php
//
//Voilou
//Je pense que ça répond à pas mal de questions
reynum Messages postés 7 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 12 juillet 2011
16 juil. 2011 à 14:48
Une autre solution qui compte aussi les dossiers.

$rep = "mon_repertoire_a_analyser/";
$nombre_fichier = count(scandir($rep))-2;//donne le nombre de fichiers et dossiers du répertoire
MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014
24 déc. 2009 à 00:19
Hello,

Un an après ca va mieux pour le code, depuis j'ai trouve une solution avec un membre génial (eterneige, désolé si j'écorche le pseudo).
Sinon sympa pour les idées afin de "modifier" le code à sa sauce :)
psycomat2205 Messages postés 1 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 17:22
salut ...
le $num_images = count_files("site/images"); tu le mets après la fonction count_files()

et pour le reste

function $num_images = ($dir)
{.....}

$num_images = count_files("site/images");
echo $num_images; et ca marche;

sinon tu peut remplacer le return $num par echo $num;

et quand tu appele ta fonction il affiche direct;

si vous comprenez pas mbourrelly@gmail.com
MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014
30 mars 2008 à 23:23
Salut,

Hum, perso, je trouve que pour "débutant", ça manque un peu d'explication, surtout que ce sont des codes principalement POUR les débutants...

- On ne sait meme pas ou mettre $num_images = count_files("site/images");
- On ne sait pas non plus si on parle d'echo ou autre...

Enfin, une petite explication serait la bienvenue =)

Sinon le code est utile et simple (d'utilisation, pas à comprendre).
Afficher les 11 commentaires

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.