成都网站建设设计

将想法与焦点和您一起共享

php小代码----目录下读取子文件或子目录

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() . ')'; }


当前题目:php小代码----目录下读取子文件或子目录
分享URL:http://chengdu.cdxwcx.cn/article/jododg.html