程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php小代碼----目錄下讀取子文件或子目錄

php小代碼----目錄下讀取子文件或子目錄

編輯:關於PHP編程

php小代碼----目錄下讀取子文件或子目錄


<?php   class RecDir {       protected $rootPath;     protected $opDirectory;       const RECDIR_MIXED = 'mixed';     const RECDIR_DIR = 'dir';     const RECDIR_FILE = 'file';       public $errorMsg = '';     public $errorNo = 0;       public function __construct($rootPath) {         $this->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)<br/>       * 得到目錄下的直接子目錄或直接子文件信息       * @param string $modeInfo[可選]<p>       * 返回目錄下信息的模式       * mixed  返回所有的文件名及目錄名       * dir    返回所有的目錄名       * file   返回所有的文件名       * </p>       * @param bool $defaultDir[可選]<p>       * 是否包括默認的鏈接目錄..和.       * false  不包括       * true   包括       * </p>       * @param bool $fullPath[可選]<p>       * 是否返回子文件或目錄的路徑信息       * true  是       * false 否       * <p>       * @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() . ')'; }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved