Tôi có một trình vòng lặp thư mục đệ quy để chọn tệp từ bên trong một thư mục. SKIP_DOTS cho phép tôi bỏ qua '.' và '..' yếu tố, nhưng tôi muốn để có thể cũng bỏ qua thư mục '__MACOSX' và một tập tin ẩn khác như '.cache.php'Trình lặp lại thư mục PHP đệ quy - bỏ qua một số tệp nhất định.
$iterator = new RecursiveDirectoryIterator($directory);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$all_files = new RecursiveIteratorIterator($iterator);
Có câu trả lời khác here và here nhưng chỉ cần tự hỏi nếu có một cách sạch hơn?
Tôi đã hy vọng sẽ có một cái gì đó trong PHP Manual - FilesystemIterator SetFlags nhưng có vẻ như không.
Tại sao bạn hy vọng cho một cái gì đó tích hợp? Có bất hợp lý khi mong đợi ai đó viết một vài dòng mã khi họ có yêu cầu đặc biệt không? Trong các hệ thống Windows, bạn thường thấy các tệp 'desktop.ini' và' Thumbs.db' đặc biệt, nên có một lá cờ đặc biệt cho các tệp đó không? – Jon
Có thể điều đó sẽ giúp: http://stackoverflow.com/questions/12454114/exclude-folders-from-recursion-in-recursive-directory-iterator-php –
@Jon Tôi thấy quan điểm của bạn, nhưng tại sao lại bao gồm 'RecursiveDirectoryIterator :: SKIP_DOTS 'nếu không giúp đỡ các trường hợp sử dụng phổ biến? – Kiksy