22.8 Alle Dateinamen finden, die einem Muster entsprechen

Problem

Sie möchten alle Dateien finden, deren Namen einem bestimmten Muster entsprechen.

Lösung

Nutzen Sie eine Instanz einer FilterIterator-Unterklasse mit dem DirectoryIterator. Die FilterIterator-Unterklasse benötigt eine accept( )-Methode, die entscheidet, ob ein bestimmter Wert übernommen werden soll oder nicht. Der Code in Listing 22.3 akzeptiert beispielsweise nur Dateinamen, die mit einer der üblichen Dateiendungen für Grafikdateien enden.

<?php class ImageFilter extends FilterIterator { public function accept() { return preg_match('@\.(gif|jpe?g|png)$@i',$this->current()); } } foreach (new ImageFilter(new DirectoryIterator('/usr/local/images')) as $img) { print "<img src='".htmlentities($img)."'/>\n"; ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.