Maison >développement back-end >tutoriel php >Comment compter les fichiers dans un répertoire avec PHP : Opendir/Readdir vs FilesystemIterator ?

Comment compter les fichiers dans un répertoire avec PHP : Opendir/Readdir vs FilesystemIterator ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-05 03:11:02262parcourir

How to Count Files in a Directory with PHP: Opendir/Readdir vs. FilesystemIterator?

Comptage des fichiers dans un répertoire avec PHP

Lorsque vous travaillez avec des répertoires en PHP, il est souvent utile de déterminer le nombre de fichiers présents à l'intérieur. Pour ce faire, plusieurs méthodes sont disponibles.

Méthode 1 : Utiliser Opendir() et Readdir()

L'approche traditionnelle consiste à utiliser opendir() et readdir( ) fonctions. Ces fonctions nécessitent une manipulation explicite du chemin de répertoire et une itération manuelle sur les fichiers. Comme le montre l'extrait de code que vous avez fourni :

<code class="php">$dir = opendir('uploads/');
$i = 0;
while (false !== ($file = readdir($dir))) {
    if (!in_array($file, array('.', '..') and !is_dir($file)) $i++;
}
echo "There were $i files";</code>

Bien que cette méthode fonctionne, elle peut s'avérer fastidieuse dans certaines situations.

Méthode 2 : Utilisation du système de fichiers SPLIterator

Une alternative plus moderne consiste à utiliser la classe SPL FilesystemIterator. Cet itérateur permet une analyse de répertoire plus pratique et plus efficace. Voici un exemple :

<code class="php">$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
printf("There were %d Files", iterator_count($fi));</code>

Dans ce code :

  • __DIR__ représente le chemin du répertoire actuel.
  • FilesystemIterator::SKIP_DOTS demande à l'itérateur d'ignorer les fichiers cachés. (commençant par un point).
  • iterator_count() renvoie le nombre total de fichiers dans le répertoire.

Cette méthode simplifie le code et fournit une solution plus élégante pour compter les fichiers dans un répertoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn