Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zähle ich Dateien in einem Verzeichnis mit PHP: Opendir/Readdir vs. FilesystemIterator?

Wie zähle ich Dateien in einem Verzeichnis mit PHP: Opendir/Readdir vs. FilesystemIterator?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 03:11:02138Durchsuche

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

Dateien in einem Verzeichnis mit PHP zählen

Bei der Arbeit mit Verzeichnissen in PHP ist es oft nützlich, die Anzahl der darin vorhandenen Dateien zu bestimmen. Um dies zu erreichen, stehen mehrere Methoden zur Verfügung.

Methode 1: Verwendung von Opendir() und Readdir()

Der traditionelle Ansatz beinhaltet die Verwendung von opendir() und readdir( ) Funktionen. Diese Funktionen erfordern eine explizite Manipulation des Verzeichnispfads und eine manuelle Iteration der Dateien. Wie aus dem von Ihnen bereitgestellten Codeausschnitt hervorgeht:

<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>

Diese Methode funktioniert zwar, kann aber in bestimmten Situationen umständlich sein.

Methode 2: Verwendung des SPL FilesystemIterator

Eine modernere Alternative ist die Verwendung der SPL FilesystemIterator-Klasse. Dieser Iterator ermöglicht ein bequemeres und effizienteres Scannen von Verzeichnissen. Hier ist ein Beispiel:

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

In diesem Code:

  • __DIR__ stellt den aktuellen Verzeichnispfad dar.
  • FilesystemIterator::SKIP_DOTS weist den Iterator an, versteckte Dateien zu ignorieren (beginnend mit einem Punkt).
  • iterator_count() gibt die Gesamtzahl der Dateien im Verzeichnis zurück.

Diese Methode vereinfacht den Code und bietet eine elegantere Lösung zum Zählen der Dateien ein Verzeichnis.

Das obige ist der detaillierte Inhalt vonWie zähle ich Dateien in einem Verzeichnis mit PHP: Opendir/Readdir vs. FilesystemIterator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn