CodeSky 代码之空

随手记录自己的学习过程

PHP 遍历目录实例

2014-02-18 18:51分类: PHP评论: 0

做文件管理的基础设施建设吧,嗯……反正还是打到打不开的思路来的。 这里为了后续方便,忽略了本目录.的显示,然后对于根目录不显示上一级的..

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)