PHP 遍历目录实例

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

            $num = 0;    // 统计子目录和文件个数
            $problem = FALSE;
            $fileList = [];

            if (!empty($_GET['route'])) 
                $dirname = $_GET['route'];
            else 
                $dirname = 'upload';

            $dir_handle = @opendir($dirname);

            if (!file_exists($dirname)) 
                echo "<script>window.location.href='"."index.php';</script>";
            
            if (!$problem) {
                while ($file = readdir($dir_handle)) {
                    $dirFile = $dirname.'/'.$file;
                    if ($dirname == 'upload' && $file != '.' && $file != '..') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    } elseif ($dirname != 'upload' && $file != '.') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    }
                }
            }

            /*
            // 统计文件夹大小
            function dirSize($dir) {
                $dir_size = 0;

                if ($dirhandle = @opendir($dir)) {
                    while ($filename = readdir($dirhandle)) {
                        if ($filename != '.' && $filename != '..') {
                            $subFile = $dir.'/'.$filename;
                            if(is_dir($subFile)) 
                                $dir_size += dirSize($subFile);
                            if(is_file($subFile)) 
                                $dir_size += filesize($subFile);
                        }
                    }
                    closedir($dirhandle);
                    echo 'Hello';
                    return $dir_size;
                }
            }
            */

            @closedir($dir_handle);
            return $fileList;

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 成品, 源码, 代码段

添加新评论