Schon mal eine Klasse in PHP gebaut, die Verzeichnisse mit Wildcards durchsuchen kann? Du wärst mit Sicherheit nicht der Erste ;) Viel zu wenig Entwickler kennen die Funktion glob, die mit der PHP Version 4.3 eingeführt wurde und genau das macht.
Ganz komfortabel kann man mit Hilfe von Wildcards Dateien selecten und bekommt das Ergebnis als Array zurückgeliefert. Eine echte Alternative zu opendir & Co also.
Sollte man deshalb ganz auf den Einsatz der Verzeichnis-Funktionen verzichten? Nachfolgend ein paar Beispiele und Abwägungen für den Einsatz von glob, wie man damit sehr schön Verzeichnisse “durchlaufen” kann und wo es keinen Sinn macht, glob einzusetzen.
Die Funktion glob liefert die Ergebnisse in einem Array aus. Das ist Glück und Pferdefuss in einem. Wenn man überschaubare Verzeichnisse damit auslesen möchte (500 und weniger Dateien) ist mit glob mit Sicherheit ein prima Weg, ohne große Code-Umwege zum Ziel zu gelangen:
<?php
 foreach(glob("*.doc") as $word_datei)
   echo $word_datei;
?>
Über zusätzliche Parameter wie GLOB_ONLYDIR oder GLOB_NOSORT kann die Reihenfolge der Ergebnisse beeinflusst bzw. ein Verzeichnisfilter eingeschaltet werden. In folge dessen werden dann z.B. nur Verzeichnisnamen zurückgeliefert, praktisch wenn man wissen möchte, welche Unterverzeichnisse ein Verzeichnis hat.
Da das Array im Variablen-Stack des ausführenden PHP Scriptes zwischengespeichert wird, mag es sinnvoll sein für sehr große Verzeichnisse mit den Directory-Funktionen von PHP zu arbeiten. In Verbindung mit der Funktion fnmatch kann dann das Verzeichnisauslesen um einiges performanter sein.


















