To wygląda jak praca dla glob , który zwraca tablicę nazw plików pasujących do określonego wzorca. Wiem o drugiej opublikowanej właśnie odpowiedzi, ale podajmy alternatywę dla wyrażenia regularnego.
Zgodnie z najwyższym komentarzem na stronie z dokumentami, możesz zrobić coś takiego:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
Opcje pozwalają określić listę wartości w nawiasach klamrowych, a gwiazdki wokół nich umożliwiają umieszczenie tych liczb w dowolnym miejscu nazwy pliku. Następnie możesz iterować po zwróconej tablicy i robić, co chcesz za pomocą $filename
.
Możesz użyć swojego przykładu for
pętla, aby automatycznie zbudować ciąg do przekazania do glob
.
Oto wynik, kiedy uruchomiłem to w utworzonym przeze mnie katalogu testowym:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Zauważ, że inny plik, który tam umieściłem, a386b.xlsx
, nie pasuje do wzorca i nie pojawia się na liście.