Ermitteln des Leerstatus eines Verzeichnisses in PHP
Um festzustellen, ob ein Verzeichnis keine Dateien enthält, besteht ein gängiger Ansatz darin, die integrierten Funktionen von PHP zu verwenden wie Glob oder Scandir. Allerdings können diese Techniken bestimmte versteckte Dateien übersehen. Um die Genauigkeit sicherzustellen, sollten Sie die Verwendung der Funktion is_dir_empty() in Betracht ziehen.
Funktion is_dir_empty()
Die Funktion is_dir_empty() verwendet scandir, um den Inhalt eines Verzeichnisses zu überprüfen. Wenn nur die Verzeichnisse. (aktuelles Verzeichnis) und .. (übergeordnetes Verzeichnis) vorhanden sind, gilt das Verzeichnis als leer und gibt True zurück. Andernfalls wird False zurückgegeben, was auf das Vorhandensein anderer Dateien oder Unterverzeichnisse hinweist.
Beispielimplementierung
<code class="php">function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
Alternative Funktion
Alternativ verwendet eine effizientere Methode opendir und readdir, um direkt auf das Vorhandensein von Dateien zu prüfen, ohne sie vollständig zu lesen.
<code class="php">function dir_is_empty($dir) { $handle = opendir($dir); while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { closedir($handle); return false; } } closedir($handle); return true; }</code>
Funktion in Kontrollstrukturen verwenden
Einmal Wenn Sie die entsprechende Funktion identifiziert haben, können Sie deren Ausgabe ohne Zwischenvariablen direkt in Kontrollstrukturen nutzen. Zum Beispiel:
<code class="php">if (is_dir_empty($dir)) { echo "The folder is empty."; } else { echo "The folder is NOT empty."; }</code>
Das obige ist der detaillierte Inhalt vonWie kann man in PHP zuverlässig feststellen, ob ein Verzeichnis leer ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!