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

Mary-Kate Olsen
Libérer: 2024-11-05 03:11:02
original
194 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal