php如何实现递归遍历文件目录?

来源:互联网 发布:plsql打开sql文件乱码 编辑:程序博客网 时间:2024/06/05 06:19
/** * 文件列表类 */class dirListClass{    /**     * 获取文件目录     * @param $dir 目录     */    public function getList($dir){        $list = $this->scandir_list($dir);        $this->lists($list);    }    /**     * 获取有深度的目录数组     * @param $dir     * @return array|string     */    private function scandir_list($dir){        $files = '';        if ($opendir = opendir($dir)) {            while (($file = readdir($opendir)) !== false) {                if ($file != '..' && $file != '.') {                    if (is_dir($dir . '/' . $file)) {                        $files[$file] = $this->scandir_list($dir . '/' . $file);                        $files['length'] = substr_count($dir . '/' . $file, '/');                    } else {                        $files[] = $file;                        $files['length'] = substr_count($dir . '/' . $file, '/') - 1;                    }                }            }            closedir($opendir);            return $files;        }    }    /**     * 输出目录列表     * @param $list     */    private function lists($list)    {        if (!empty($list)) {//print_r($list);            $length = 0;            foreach ($list as $key => $value) {                if ($key == 'length') {                    $length = $value;                    continue;                }                if (isset($value['length'])) {                    $length = $value['length'];                    unset($value['length']);                }                if (gettype($key) == 'string') {                    for ($i = 0; $i < $length - 1; $i++) {                        echo '----';                    }                    echo $key . "<br>";                    $this->lists($list[$key]);                } else {                    for ($i = 0; $i < $length; $i++) {                        echo '----';                    }                    echo $value . "<br>";                }            }        }    }}
0 0
原创粉丝点击