Funktion der Woche: glob()
glob()
Wenn man mit dem Filesystem arbeitet, muss man sich “glob” unbedingt anschauen. ”glob” findet Dateipfade die mit dem angegebenen Muster (pattern) übereinstimmen, und gibt das Resultat als Array zurück.
Wofür könnte ich diese Funktion gebrauchen?
Man könnte zum Beispiel alle Textdateien in einem Verzeichnis suchen (pattern: *.txt). Oder andere Dateien
Auch für eine rekursive Funktion, die auch alle Unterordner durchsucht kann man “glob()” gebrauchen.
Und für ein paar tausend andere Dinge, die ihr euch selbst überlegen könnt…
Beispiel
Angenommen ich habe einen Ordner “files”, in dem folgende Dateien liegen:
Jetzt möchte ich irgendwas mit allen Text-Dateien machen. Dank “glob()” sehr einfach:
$pattern = "files/*.txt"; foreach(glob($pattern) as $filename){ echo $filename."<br/>"; }
Die Ausgabe wäre:
files/Kopie von nr1.txt files/nr1.txt files/nr2.txt
Im Pattern kann ich auch ein Fragezeichen verwenden. Dies symbolisiert ein unbekanntes Zeichen:
$pattern = "files/nr?.txt"; foreach(glob($pattern) as $filename){ echo $filename."<br/>"; }
Hier wäre die Ausgabe:
files/nr1.txt files/nr2.txt
Mit dem Pattern “files/[in]*” wäre die Ausgabe folgendermassen:
files/index.php files/nr1.txt files/nr2.txt
Sonstiges
Man sollte auch den optionalen zweiten Parameter (das Flag) in der Doku beachten. Damit kann man zum Beispiel nur nach Ordnern suchen, oder jedem gefundenen Pfad ein Slash hinzufügen.