ホームページ > php教程 > php手册 > PHP の小さなコード - ディレクトリ内のサブファイルまたはサブディレクトリを読み取ります。

PHP の小さなコード - ディレクトリ内のサブファイルまたはサブディレクトリを読み取ります。

WBOY
リリース: 2016-06-21 08:46:18
オリジナル
1178 人が閲覧しました

クラス RecDir {

protected $rootPath;

protected $opDirectory;

const RECDIR_MIXED = '混合';

const RECDIR_DIR = 'dir';

const RECDIR_FILE = 'ファイル';

public $errorMsg = '';

public $errorNo = 0;

パブリック関数 __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;

}

}

休憩;

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;

}

}

}

休憩;

case self::RECDIR_FILE:

if (is_file($parentPath . DIRECTORY_SEPARATOR . $childDirOrFileName)) {

$dirInfo[] = $fullPath ? $parentPath 。 DIRECTORY_SEPARATOR 。 $childDirOrFileName : $childDirOrFileName;

}

休憩;

}

}

return $dirInfo;

}

/**

* (PHP 5 >= 5.4.0)

* ディレクトリ

の直下のサブディレクトリまたは直下のサブファイル情報を取得します

* @param string $modeInfo[オプション]

* ディレクトリ内の情報のモードを返します

* 混合 すべてのファイル名とディレクトリ名を返します

* 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);

}

}

//----------------------------テスト-------------- ------------------------

header("Content-type:text/html; charset=UTF-8");

{

を試してください

$recDir = new RecDir('./CALLTEMP/');

$dirs = $recDir->getPathDirectDirInfo('file', true, true);

var_dump($dirs);

} catch (例外 $ex) {

echo '在文件【' . $ex->getFile() 。 ']中の第' 。 $ex->getLine() 。 「行报错:」 。 $ex->getMessage() 。 '(' . $ex->getCode() . ')';

}



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート