Dette ligner et job for glob , som returnerer en række filnavne, der matcher et specificeret mønster. Jeg er klar over det andet svar, der lige er sendt, men lad os give et alternativ til regulært udtryk.
Ifølge den øverste kommentar på dokumentsiden, hvad du kunne gøre, er noget som dette:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
indstillinger giver dig mulighed for at angive en liste over værdier i klammer, og stjernerne omkring dem tillader disse tal at blive vist hvor som helst i filnavnet. Du kan derefter iterere over det returnerede array og gøre hvad du vil med $filename
.
Du kan bruge dit eksempel for
loop for automatisk at bygge en streng, der skal sendes til glob
.
Her er outputtet, da jeg kørte dette på en testmappe, jeg lavede:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Bemærk, at jeg har lagt en anden fil ind der, a386b.xlsx
, matchede ikke mønsteret og vises ikke på listen.