Das sieht nach einem Job für glob aus , die ein Array von Dateinamen zurückgibt, die einem bestimmten Muster entsprechen. Ich kenne die andere Antwort, die gerade gepostet wurde, aber lassen Sie uns eine Alternative zu Regex bereitstellen.
Laut dem obersten Kommentar auf der Dokumentationsseite könnten Sie etwa Folgendes tun:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
Der GLOB_BRACE
Optionen können Sie eine Liste von Werten in geschweiften Klammern angeben, und die Sternchen um sie herum ermöglichen es, dass diese Zahlen überall im Dateinamen erscheinen. Sie können dann über das zurückgegebene Array iterieren und mit $filename
tun, was Sie wollen .
Sie könnten Ihr Beispiel for
verwenden Schleife, um automatisch einen String zu erstellen, der an glob
übergeben wird .
Hier ist die Ausgabe, als ich dies in einem von mir erstellten Testverzeichnis ausgeführt habe:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Beachten Sie, dass ich dort eine weitere Datei eingefügt habe, a386b.xlsx
, stimmt nicht mit dem Muster überein und erscheint nicht in der Liste.