Skip to content

Funktion der Woche: glob()

2011 October 19
by DeDu

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.

Weiterführende Links

Wenn dir dieser Artikel gefallen hat, kannst du meinen RSS Feed abonnieren um immer auf dem Laufenden zu bleiben. Natürlich kannst du mir auch auf Twitter folgen oder mich auf Google+ zu einem Kreis hinzufügen.

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS