Dit ziet eruit als een taak voor glob , die een reeks bestandsnamen retourneert die overeenkomen met een opgegeven patroon. Ik ben me bewust van het andere antwoord dat zojuist is gepost, maar laten we een alternatief bieden voor regex.
Volgens de bovenste opmerking op de documentenpagina zou je zoiets als dit kunnen doen:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
De GLOB_BRACE
Met opties kunt u een lijst met waarden tussen accolades opgeven en de sterretjes eromheen zorgen ervoor dat die nummers overal in de bestandsnaam kunnen verschijnen. Je kunt dan de geretourneerde array herhalen en doen wat je wilt met $filename
.
Je zou je voorbeeld for
. kunnen gebruiken lus om automatisch een tekenreeks op te bouwen om door te geven aan glob
.
Dit is de uitvoer toen ik dit uitvoerde in een testmap die ik heb gemaakt:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Merk op dat een ander bestand dat ik daar heb geplaatst, a386b.xlsx
, kwam niet overeen met het patroon en staat niet in de lijst.