PHP 遍历目录实例
做文件管理的基础设施建设吧,嗯……反正还是打到打不开的思路来的。 这里为了后续方便,忽略了本目录
.
的显示,然后对于根目录不显示上一级的..
1 $num = 0; // 统计子目录和文件个数
2 $problem = FALSE;
3 $fileList = [];
4
5 if (!empty($_GET['route']))
6 $dirname = $_GET['route'];
7 else
8 $dirname = 'upload';
9
10 $dir_handle = @opendir($dirname);
11
12 if (!file_exists($dirname))
13 echo "<script>window.location.href='"."index.php';</script>";
14
15 if (!$problem) {
16 while ($file = readdir($dir_handle)) {
17 $dirFile = $dirname.'/'.$file;
18 if ($dirname == 'upload' && $file != '.' && $file != '..') {
19 $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
20 if (is_dir($dirFile)) {
21 $fileList[$num]['filesize'] = '';
22 }
23 $num++;
24 } elseif ($dirname != 'upload' && $file != '.') {
25 $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
26 if (is_dir($dirFile)) {
27 $fileList[$num]['filesize'] = '';
28 }
29 $num++;
30 }
31 }
32 }
33
34 /*
35 // 统计文件夹大小
36 function dirSize($dir) {
37 $dir_size = 0;
38
39 if ($dirhandle = @opendir($dir)) {
40 while ($filename = readdir($dirhandle)) {
41 if ($filename != '.' && $filename != '..') {
42 $subFile = $dir.'/'.$filename;
43 if(is_dir($subFile))
44 $dir_size += dirSize($subFile);
45 if(is_file($subFile))
46 $dir_size += filesize($subFile);
47 }
48 }
49 closedir($dirhandle);
50 echo 'Hello';
51 return $dir_size;
52 }
53 }
54 */
55
56 @closedir($dir_handle);
57 return $fileList;
58
评论 (0)