php小代码----目录下读取子文件或子目录
admin
2023-06-26 01:01:47
0
rootPath = $rootPath;
        if (is_dir($this->rootPath)) {
            $this->rootPath = pathinfo($this->rootPath, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR . pathinfo($this->rootPath, PATHINFO_BASENAME);
            $this->opDirectory = dir($this->rootPath);
        } else {
            $this->errorMsg = '您提供的目录不存在!';
            $this->errorNo = 1001;
            throw new Exception($this->errorMsg, $this->errorNo);
        }
    }

    private function read($directory, $parentPath, $modeInfo = 'mixed', $defaultDir = false, $fullPath = false) {
        $dirInfo = array();
        while (FALSE !== ($childDirOrFileName = $directory->read())) {
            switch ($modeInfo) {
                case self::RECDIR_MIXED:
                    if ($defaultDir) {
                        $dirInfo[] = $fullPath ? $parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName : $childDirOrFileName;
                    } else {
                        if ($childDirOrFileName != '.' && $childDirOrFileName != '..') {
                            $dirInfo[] = $fullPath ? $parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName : $childDirOrFileName;
                        }
                    }
                    break;
                case self::RECDIR_DIR:
                    if (is_dir($parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName)) {
                        if ($defaultDir) {
                            $dirInfo[] = $fullPath ? $parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName : $childDirOrFileName;
                        } else {
                            if ($childDirOrFileName != '.' && $childDirOrFileName != '..') {
                                $dirInfo[] = $fullPath ? $parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName : $childDirOrFileName;
                            }
                        }
                    }
                    break;
                case self::RECDIR_FILE:
                    if (is_file($parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName)) {
                        $dirInfo[] = $fullPath ? $parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName : $childDirOrFileName;
                    }
                    break;
            }
        }
        return $dirInfo;
    }
     /**
      * (PHP 5 >= 5.4.0)
      * 得到目录下的直接子目录或直接子文件信息       * @param string $modeInfo[可选]

      * 返回目录下信息的模式       * mixed  返回所有的文件名及目录名       * dir    返回所有的目录名       * file   返回所有的文件名       * 

      * @param bool $defaultDir[可选]

      * 是否包括默认的链接目录..和.       * false  不包括       * true   包括       * 

      * @param bool $fullPath[可选]

      * 是否返回子文件或目录的路径信息       * true  是       * false 否       * 

      * @return array 返回一个数组,记录了该目录下的信息       */     public function getPathDirectDirInfo($modeInfo = 'mixed', $defaultDir = false, $fullPath = false) {         return $this->read($this->opDirectory, $this->rootPath, $modeInfo, $defaultDir, $fullPath);     }     } //----------------------------test----------------------------------------- header("Content-type:text/html; charset=UTF-8"); try {     $recDir = new RecDir('./CALLTEMP/');     $dirs = $recDir->getPathDirectDirInfo('file', true, true);     var_dump($dirs); } catch (Exception $ex) {     echo '在文件【' . $ex->getFile() . '】中的第' . $ex->getLine() . '行报错:' . $ex->getMessage() . '(' . $ex->getCode() . ')'; }


相关内容

热门资讯

伊朗撂下3句狠话 网络上的P图,看看挺有意思的世间万千博弈,最耗心神的,从来不是立场分歧,而是态度的反复无常。这也是现...
普京:亚美尼亚若入欧盟,得先算... 新华社阿斯塔纳/莫斯科5月29日电(记者张继业 许炜凯) 俄罗斯总统普京29日表示,亚美尼亚在欧盟和...
伊朗军方在格什姆岛附近击落敌对... 总台记者当地时间5月29日晚自伊朗方面获悉,伊朗陆军防空部队在监测到敌方小型无人机后,在格什姆岛附近...
联合国安理会延长对南苏丹武器禁... △当地时间5月29日,安理会成员国在就南苏丹制裁授权延期决议草案进行表决。当地时间5月29日,联合国...
字节Seed AI4S或考虑分... 来源:市场资讯 (来源:三言科技) 5月29日,据Z Finance,字节Seed旗下AI4S团队正...
刷新在轨驻留最长纪录!神二十一... 自2025年11月1日进驻空间站以来,神舟二十一号乘组在轨驻留了约7个月,刷新中国航天员乘组在轨驻留...
广东荔枝迎采收季,无人机单机日... 5月底,岭南荔枝进入采收与上市关键期。南都湾财社记者获悉,以大疆为代表的农业无人机正大规模替代传统人...
伊媒:特朗普关于伊美协议的说法... 新华社德黑兰5月29日电 伊朗法尔斯通讯社29日以一名伊方知情人士为消息源,反驳美国总统特朗普关于美...
电视为什么一直闪屏 由于电源电压不稳定或电源供电不足的缘故、电视分辨率的故障、电视存在周围有电磁干扰的缘故、电视的刷新频...
专访塞尔维亚总统武契奇 塞尔维亚总统武契奇首次对中国进行国事访问,接受《高端访谈》专访。他说,这是他政治生涯中最重要的一次访...