Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man in PHP zuverlässig feststellen, ob ein Verzeichnis leer ist?

Wie kann man in PHP zuverlässig feststellen, ob ein Verzeichnis leer ist?

DDD
DDDOriginal
2024-10-26 10:09:02727Durchsuche

How to Reliably Determine if a Directory is Empty in PHP?

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 != "." &amp;&amp; $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!

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