Nombre de fichiers dans un répertoire

4/5 (11 avis)

Snippet vu 13 253 fois - Téléchargée 29 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
-
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
-
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
186
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2014
-
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
-
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
186
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2014
-
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).

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.