Câu hỏi đơn giản về newb và Google-Fu của tôi không làm tôi thất vọng. Sử dụng PHP, làm thế nào bạn có thể đếm số lượng tệp trong một thư mục nhất định, bao gồm bất kỳ thư mục con nào (và bất kỳ thư mục con nào mà chúng có thể có, v.v.)? ví dụ. nếu cấu trúc thư mục trông giống như sau:Đệ quy đếm các tệp bằng PHP
/Dir_A/ /Dir_A/File1.blah /Dir_A/Dir_B/ /Dir_A/Dir_B/File2.blah /Dir_A/Dir_B/File3.blah /Dir_A/Dir_B/Dir_C/ /Dir_A/Dir_B/Dir_C/File4.blah /Dir_A/Dir_D/ /Dir_A/Dir_D/File5.blah
Tập lệnh phải trả về bằng '5' cho "./Dir_A".
tôi đã gom góp sau nhưng nó không hoàn toàn quay trở lại câu trả lời đúng, và tôi không chắc chắn lý do tại sao:
function getFilecount($path = '.', $filecount = 0, $total = 0){ $ignore = array('cgi-bin', '.', '..', '.DS_Store'); $dh = @opendir($path); while(false !== ($file = readdir($dh))){ if(!in_array($file, $ignore)){ if(is_dir("$path/$file")){ $filecount = count(glob("$path/$file/" . "*")); $total += $filecount; echo $filecount; /* debugging */ echo " $total"; /* debugging */ echo " $path/$file
"; /* debugging */ getFilecount("$path/$file", $filecount, $total); } } } return $total; }
tôi đánh giá rất cao sự giúp đỡ nào.
Mã này hoạt động chính xác theo yêu cầu. –
Xin chào. Cảm ơn sự hỗ trợ nhanh chóng. Kịch bản này gây ra lỗi hết thời gian chờ cho tôi. "Lỗi nghiêm trọng: Đã vượt quá thời gian thực hiện tối đa 30 giây". Không chắc chắn lý do tại sao. Chỉ có 8 thư mục và 68 tệp trong thư mục đích. – user18359
Thử sao chép lại ảnh dán hiện đang có ở đó. Câu trả lời ban đầu của tôi có lỗi trong đó, câu trả lời này được kiểm tra và hoạt động. –