Đây có vẻ như là một công việc cho toàn cầu , trả về một mảng tên tệp phù hợp với một mẫu được chỉ định. Tôi biết về câu trả lời khác vừa được đăng, nhưng hãy cung cấp một giải pháp thay thế cho regex.
Theo nhận xét hàng đầu trên trang tài liệu, những gì bạn có thể làm là như sau:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
các tùy chọn cho phép bạn chỉ định danh sách các giá trị trong dấu ngoặc nhọn và dấu hoa thị xung quanh chúng cho phép các số đó xuất hiện ở bất kỳ đâu trong tên tệp. Sau đó, bạn có thể lặp lại mảng được trả về và làm bất cứ điều gì bạn muốn với $filename
.
Bạn có thể sử dụng ví dụ của mình for
vòng lặp để tự động tạo một chuỗi để chuyển tới glob
.
Đây là kết quả đầu ra khi tôi chạy điều này trên thư mục thử nghiệm mà tôi đã thực hiện:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Lưu ý rằng một tệp khác mà tôi đã đưa vào đó, a386b.xlsx
, không khớp với mẫu và không xuất hiện trong danh sách.