Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man in PHP genau feststellen, ob ein Verzeichnis leer ist, einschließlich versteckter Dateien?
Verzeichnisleerheit in PHP ermitteln
Sie möchten mit PHP prüfen, ob ein Verzeichnis leer ist, aber Ihr aktuelles Skript liefert inkonsistente Ergebnisse. Lassen Sie uns das Problem untersuchen und eine zuverlässige Lösung finden.
Ihr Code verwendet glob, um die Dateien im Verzeichnis abzurufen. Allerdings hat glob eine Einschränkung: Es kann keine versteckten Dateien erkennen, die mit einem Punkt beginnen (z. B. „.gitignore“). Daher meldet Ihr Skript das Verzeichnis möglicherweise als leer, obwohl versteckte Dateien vorhanden sind.
Um diese Einschränkung zu umgehen, können Sie glob durch scandir ersetzen. scandir liest alle Dateien in einem Verzeichnis, einschließlich versteckter Dateien. Sie können Ihren Code wie folgt ändern:
<code class="php">$dir = '/assets/'.$pid.'/v'; if (is_dir_empty($dir)) { echo "the folder is empty"; }else{ echo "the folder is NOT empty"; } function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
Die Funktion is_dir_empty zählt die Anzahl der Dateien im Verzeichnis und vergleicht sie mit 2 (die „.“ und „..“ darstellen). Wenn die Anzahl 2 beträgt, ist das Verzeichnis leer.
Alternativ können Sie opendir und readdir verwenden, um das Verzeichnis zu durchlaufen und nach nicht versteckten Dateien zu suchen:
<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>
Indem Sie diese verwenden Mithilfe dieser Methoden können Sie genau feststellen, ob ein Verzeichnis leer ist, auch wenn es versteckte Dateien enthält. Erwägen Sie außerdem die Verwendung boolescher Werte anstelle von Wörtern („Leer“ oder „Nicht leer“), um einen klareren und prägnanteren Code zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann man in PHP genau feststellen, ob ein Verzeichnis leer ist, einschließlich versteckter Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!