您好,登錄后才能下訂單哦!
<?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> * 是否包括默認(rèn)的鏈接目錄..和. * false 不包括 * true 包括 * </p> * @param bool $fullPath[可選]<p> * 是否返回子文件或目錄的路徑信息 * true 是 * false 否 * <p> * @return array 返回一個(gè)數(shù)組,記錄了該目錄下的信息 */ 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() . '行報(bào)錯(cuò):' . $ex->getMessage() . '(' . $ex->getCode() . ')'; }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。