Tôi có một thư mục. Tôi muốn đặt mọi tập tin trong thư mục này vào một mảng và sau đó tôi muốn lặp lại tất cả chúng trong một vòng lặp foreach.
Cách tốt nhất để làm điều này là gì?
Cảm ơn!Danh sách nội dung của thư mục (php)
Trả lời
Scandir là những gì bạn đang tìm kiếm http://php.net/manual/en/function.scandir.php
<?php
$dir = '/tmp';
$files1 = scandir($dir);
print_r($files1);
?>
Hoặc sử dụng sự kết hợp của opendir và readdir http://php.net/manual/en/function.readdir.php
Không có được dễ dàng hơn nhiều so với này
http://ca3.php.net/manual/en/function.scandir.php
Đừng quên để lọc ra các thư mục ẩn và mẹ (họ bắt đầu với một dấu chấm) trên Linux.
Edit: câu trả lời dwich là tốt hơn. Tôi sẽ để lại thông tin này.
<?php
if ($handle = opendir('/path/to/dir')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
closedir($handle);
}
?>
Hy vọng điều này sẽ hữu ích.
-Alberto
Một lựa chọn:
define('PATH', 'files/');
$filesArray = array();
$filesArray = glob(PATH . '*', GLOB_ONLYDIR);
Phương pháp này cho phép bạn chỉ định/lọc một theo loại file. Ví dụ:
define('PATH', 'files/');
define('FILE_TYPE', '.jpg');
$filesArray = array();
$filesArray = glob(PATH . '*' . FILE_TYPE, GLOB_ONLYDIR);
Bạn cũng có thể có được tên đường dẫn đầy đủ đến tập tin bằng cách loại bỏ các tham số 'GLOB_ONLYDIR'
này hoạt động cho các tập tin và thư mục trong thư mục con quá. Trả về danh sách các thư mục và danh sách các tập tin với đường dẫn của chúng.
$dir = __DIR__; //work only for this current dir
function listFolderContent($dir,$path=''){
$r = array();
$list = scandir($dir);
foreach ($list as $item) {
if($item!='.' && $item!='..'){
if(is_file($path.$item)){
$r['files'][] = $path.$item;
}elseif(is_dir($path.$item)){
$r['folders'][] = $path.$item;
$sub = listFolderContent($path.$item,$path.$item.'/');
if(isset($sub['files']) && count($sub['files'])>0)
$r['files'] = isset ($r['files'])?array_merge ($r['files'], $sub['files']):$sub['files'];
if(isset($sub['folders']) && count($sub['folders'])>0)
$r['folders'] = array_merge ($r['folders'], $sub['folders']);
}
}
}
return $r;
}
$list = listFolderContent($dir);
var_dump($list['files']);
var_dump($list['folders']);
- 1. Danh sách các tệp trong thư mục nội dung và thư mục con của nó
- 2. Truy xuất nội dung của thư mục Dropbox công khai?
- 3. Nội dung thư mục trong Haskell
- 4. NSFileManager xóa nội dung của thư mục
- 5. tệp danh sách android chứa trong thư mục con nội dung
- 6. Tổng hợp nội dung của 2 danh sách trong Groovy
- 7. Danh sách nội dung của bộ nhớ cache véc ni?
- 8. Python: lấy nội dung của một danh sách và nối nó vào một danh sách khác
- 9. .gitignore một nội dung thư mục
- 10. Cách đọc danh sách tệp từ thư mục bằng PHP?
- 11. danh sách PHP tất cả các file trong thư mục
- 12. chỉ mục jquery() - mục danh sách di chuột, hiển thị nội dung có cùng chỉ mục
- 13. Tiếp cận Danh mục nội dung pathForResource
- 14. Cách thêm nội dung vào thư mục SVN mà không kiểm tra nội dung của nó?
- 15. yêu cầu tệp nội dung từ thư mục con của đường dẫn nội dung
- 16. Robocopy nội dung bản sao của thư mục hiện hành
- 17. Tạo biểu diễn văn bản của nội dung thư mục
- 18. sự khác biệt giữa nội dung của hai thư mục
- 19. Xóa nội dung của thư mục có tập lệnh shell
- 20. Giám sát nội dung của tệp/thư mục?
- 21. jQuery: Tìm nội dung của một mục danh sách có chứa một ul lồng nhau
- 22. PHP: Cách đơn giản nhất để xóa thư mục (bao gồm nội dung của nó)
- 23. Danh sách thư mục Sharpssh
- 24. * FASTEST * danh sách thư mục
- 25. Liệt kê nội dung tệp thư mục trong mẫu Django
- 26. SVN kiểm tra nội dung của một thư mục, không phải thư mục chính nó
- 27. Sao chép nội dung của một thư mục này sang một thư mục khác
- 28. Cách xóa nội dung của thư mục Documents (và không phải thư mục Documents)?
- 29. Lỗi thư mục nội dung dự án không hợp lệ
- 30. Tại sao danh sách thư mục chứa thư mục (.) Và thư mục mẹ (..) hiện tại?
Tôi nghĩ điều này tốt hơn 'readdir', ngay cả khi đó chỉ là PHP 5. +1 vì ví dụ. – Donovan