Ini sepertinya pekerjaan untuk glob , yang mengembalikan larik nama file yang cocok dengan pola tertentu. Saya mengetahui jawaban lain yang baru saja diposting, tetapi mari kita berikan alternatif untuk regex.
Menurut komentar teratas di halaman dokumen, yang dapat Anda lakukan adalah seperti ini:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
options memungkinkan Anda menentukan daftar nilai dalam kurung kurawal, dan tanda bintang di sekitarnya memungkinkan nomor tersebut muncul di mana saja dalam nama file. Anda kemudian dapat mengulangi array yang dikembalikan dan melakukan apa pun yang Anda inginkan dengan $filename
.
Anda dapat menggunakan contoh Anda for
loop untuk secara otomatis membuat string untuk diteruskan ke glob
.
Inilah hasilnya ketika saya menjalankan ini pada direktori pengujian yang saya buat:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Perhatikan bahwa file lain yang saya taruh di sana, a386b.xlsx
, tidak cocok dengan pola dan tidak muncul dalam daftar.