Heim > Backend-Entwicklung > PHP-Tutorial > ## 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
Freigeben: 2024-10-25 04:19:29
Original
1043 Leute haben es durchsucht

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

Überprüfen der Verzeichnisleerheit in PHP

Die Feststellung, ob ein Verzeichnis leer ist, kann in verschiedenen Webentwicklungsszenarien eine wichtige Aufgabe sein. Bei bestimmten Skripten können jedoch Probleme auftreten, bei denen die Ausgabe fälschlicherweise ein leeres oder nicht leeres Verzeichnis vorschlägt, obwohl Dateien darin vorhanden sind oder nicht.

Originalskript

Das bereitgestellte Das Skript versucht, mithilfe des folgenden Codes zu prüfen, ob ein Verzeichnis leer ist:

<code class="php">$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';</code>
Nach dem Login kopieren

Die glob()-Funktion kann jedoch möglicherweise keine versteckten Unix-Dateien erkennen, was zu ungenauen Ergebnissen führt.

Verbesserte Lösung

Um dieses Problem zu beheben, empfehlen wir die Verwendung der Funktion scandir() anstelle von glob(), da diese sowohl reguläre als auch versteckte Dateien erkennen kann. Um die Effizienz zu verbessern, können wir außerdem eine benutzerdefinierte Funktion verwenden, um schneller auf Leere zu prüfen:

<code class="php">function is_dir_empty($dir) {
  return (count(scandir($dir)) == 2);
}</code>
Nach dem Login kopieren

Diese Funktion prüft, ob das Verzeichnis nur zwei Einträge enthält: das aktuelle Verzeichnis (".") und das übergeordnete Verzeichnis Verzeichnis (.."), was auf ein leeres Verzeichnis hinweist.

Best Practice

Als Best Practice empfiehlt es sich, boolesche Werte lieber direkt in Kontrollstrukturen zu verwenden als sich auf Textzeichenfolgen wie „Leer“ oder „Nicht leer“ zu verlassen. Boolesche Ausdrücke bieten eine prägnantere und genauere Möglichkeit, leere oder nicht leere Bedingungen zu bestimmen.

Anstatt beispielsweise Folgendes zu verwenden:

<code class="php">if ($q == "Empty") {
  // ...
}</code>
Nach dem Login kopieren

Sie können Folgendes direkt verwenden:

<code class="php">if (is_dir_empty($dir)) {
  // ...
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt von## Wie 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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage