Det här ser ut som ett jobb för glob , som returnerar en uppsättning filnamn som matchar ett angivet mönster. Jag är medveten om det andra svaret som precis lades upp, men låt oss ge ett alternativ till regex.
Enligt den översta kommentaren på dokumentsidan, vad du kan göra är ungefär så här:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
alternativ låter dig ange en lista med värden inom klammerparenteser, och asteriskerna runt dem låter dessa siffror visas var som helst i filnamnet. Du kan sedan iterera över den returnerade arrayen och göra vad du vill med $filename
.
Du kan använda ditt exempel for
loop för att automatiskt bygga en sträng för att skicka till glob
.
Här är resultatet när jag körde detta på en testkatalog som jag skapade:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Observera att en annan fil jag lagt in där, a386b.xlsx
, matchade inte mönstret och visas inte på listan.