遍历目录的正确方法

若如初见. 提交于 2019-12-01 13:03:47
/**
     * 遍历目录
     * @staticvar int $depth
     * @staticvar array $path
     * @param type $dir
     * @param type $clear 是否销毁静态变量
     * @return string|boolean
     */
    public function _scan($dir, $clear = false) {
        static $depth = 0;
        static $path = array();
        // 无限遍历
//        if ($depth >= 10000) {
//            return false;
//        }
        if($clear) {
            $path = null;
            static $path = array();
        }
        $dirArr = scandir($dir);
        foreach ($dirArr as $v) {

            if (substr($v, 0, 1) != '.') {//去掉隐藏目录或文件
                $dirname = $dir . DS . $v;  //子文件夹的目录地址
                if (is_dir($dirname)) {
                    $depth++;
                    $this->_scan($dirname);
                } else {
                    $path[] = $dirname;
                }
            }
        }

        return $path;
    }

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!