Heim > Artikel > Backend-Entwicklung > Zählen Sie die Anzahl der Dateien in einem Verzeichnis in PHP
php-Editor Yuzai zeigt Ihnen, wie Sie die Anzahl der Dateien in einem Verzeichnis in PHP zählen. Mithilfe der Dateisystemfunktionen von PHP können Sie problemlos ein Verzeichnis durchlaufen und die Anzahl der darin enthaltenen Dateien zählen. Dies kann bei einigen Projekten eine sehr nützliche Funktion sein, beispielsweise beim Zählen der Anzahl von Bildern oder Dokumenten auf einer Website. Als nächstes werden wir detailliert beschreiben, wie Sie PHP-Code verwenden, um diese Funktionalität zu erreichen. Lasst uns gemeinsam lernen!
PHP bietet die Klasse FilesystemIterator
, eine elegante Möglichkeit, Dateien in einem Verzeichnis zu zählen. Diese Klasse enthält eine Reihe von Funktionen und Konstanten, die verschiedene Operationen zur Iteration des Dateisystems ausführen.
Verwenden Sie die Funktion iterator_count()
, um die Anzahl der Elemente in einem Iterator zu zählen.
Betrachten wir die folgende Verzeichnisstruktur.
<code> <code class="language-bash hljs">myDir ├── abc.<strong class="keylink">html</strong> ├── abc.jpeg ├── abc.php └── abc.png </code></code>
Erstellen Sie zunächst eine Variable $iterator und speichern Sie FilesystemIterator()
的一个实例。 将第一个参数设置为 __DIR__
并使用 FilesystemIterator::SKIP_DOTS
als zweiten Parameter im Konstruktor.
__DIR__
表示脚本所在的当前目录,第二个参数是一个标志,表示跳过。 和 ..
existiert im Verzeichnis. Die Variable $iterator enthält den Dateisystem-Iterator des aktuellen Verzeichnisses.
Es kann wiederholt werden, um Informationen wie Dateinamen, Anzahl der Dateien usw. zu erhalten.
Verwenden Sie als Nächstes die Funktion iterator_count()
, um die Anzahl der $iterator im Verzeichnis auszugeben.
Beispielcode:
<code> <code class="language-php hljs"><span class="hljs-variable">$iterator</span> = <span class="hljs-keyword">new</span> <span class="hljs-built_in">FilesystemIterator</span>(<span class="hljs-keyword">__DIR__</span>, <span class="hljs-built_in">FilesystemIterator</span>::SKIP_DOTS); <span class="hljs-keyword">echo</span> <span class="hljs-string">"There are "</span>. iterator_count(<span class="hljs-variable">$iterator</span>). <span class="hljs-string">" files in the directory"</span>; </code></code>
Die Ausgabe ist wie folgt:
<code> <code class="language-bash hljs">There are 4 files <span class="hljs-keyword">in</span> the directory </code></code>
Daher können wir die Klasse FilesystemIterator()
verwenden, um die Anzahl der Dateien in einem Verzeichnis zu zählen.
Wir können die Funktion glob()
和 count()
函数来获取目录中的文件数。 glob()
verwenden, um ein Array von Dateien und Ordnern zu erstellen, die einem bestimmten Muster entsprechen.
Wir können * verwenden, um alle Dateien in einem Verzeichnis abzurufen. Als nächstes können wir die Funktion count()
verwenden, um die Anzahl der Elemente in diesem Array zu ermitteln.
Erstellen Sie beispielsweise eine Variable $path, um den genauen Pfad des Verzeichnisses zu speichern, in dem die Dateien gezählt werden sollen. Als nächstes verwenden Sie , um die $pathglob()
函数并将该变量与 /*
-Variablen zu verketten.
Als Ergebnis wird ein Array aller Dateien in myDir erstellt. Verwenden Sie abschließend die Funktion glob()
函数的结果使用 count()
für das Ergebnis der Funktion glob()
.
Auf diese Weise können Sie die Anzahl der Dateien im myDir-Verzeichnis überprüfen. Das folgende Codebeispiel stellt die im ersten Beispiel verwendete Dateistruktur dar.
Beispielcode:
<code> <code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>; <span class="hljs-variable">$num</span> = count(glob(<span class="hljs-variable">$path</span> . <span class="hljs-string">"/*"</span>)); <span class="hljs-keyword">echo</span> <span class="hljs-variable">$num</span>; </code></code>
Die Ausgabe ist wie folgt:
<code> <code class="language-bash hljs">4 </code></code>
Diese Methode ähnelt der zweiten Methode. Der einzige Unterschied besteht darin, dass wir die Funktion scandir()
函数而不是 glob()
verwenden.
Wir können den Verzeichnispfad als Parameter für die Funktion scandir() bereitstellen. Diese Funktion gibt ein Array zurück, das den gesamten Inhalt des Verzeichnisses enthält, einschließlich .
和 ...
Als nächstes können wir die Funktion count()
函数来获取目录中内容的数量。 最后,重要的部分是将 count()
函数的结果减去 2,以去除 .
和 ...
verwenden, um die Anzahl der Inhalte im Verzeichnis zu ermitteln. Schließlich besteht der wichtige Teil darin, 2 vom Ergebnis der Funktion
zu entfernen.
Daher können wir die genaue Anzahl der Dateien im Verzeichnis ermitteln.
Beispielcode:
<code> <code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>; <span class="hljs-variable">$num</span> = count(scandir(<span class="hljs-variable">$path</span>))-<span class="hljs-number">2</span>; <span class="hljs-keyword">echo</span> <span class="hljs-string">"there are <span class="hljs-subst">$num</span> files in the directory"</span>; </code></code>🎜 Die Ausgabe ist wie folgt:🎜
<code> <code class="language-bash hljs">there are 4 files <span class="hljs-keyword">in</span> the directory </code></code>
Das obige ist der detaillierte Inhalt vonZählen Sie die Anzahl der Dateien in einem Verzeichnis in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!