22.8 Eine Liste von Dateinamen finden, die einem bestimmten Muster entspricht

Problem

Sie wollen alle Dateinamen finden, die einem bestimmten Muster entsprechen.

Lösung

Wenn Ihr Muster ein regulärer Ausdruck ist, lesen Sie jede Datei aus dem Verzeichnis ein und überprüfen den Namen mit preg_match( ):

foreach (new DirectoryIterator($pfad) as $filename)  {
    // Nur alphabetische Namen, bitte!
    if (preg_match('/^[a-zA-Z]+$/',$filename)) {
        print "$filename\n";
    }
}

Diskussion

Wenn Ihr Muster ein Shell-Glob ist (z.B. *.*), verwenden Sie den Backtick-Operator mit ls (Unix) oder dir (Windows), um die passenden Dateinamen zu erhalten. Für Unix:

$files = explode("\n",`ls −1 *.gif`);
foreach ($files as $file) {
  print "$b\n";
}

Für Windows:

$files = explode("\n",`dir ...

Get PHP 5 Kochbuch 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.