【PHP】指定したフォルダ(ディレクトリ)内にある全てのファイル名を取得する方法

公開日:
更新日:
カテゴリー: PHP

サーバー内にある任意のフォルダ(ディレクトリ)の中にある全てのファイル名を取得する方法を説明しています。

opendir関数を使う

PHPで任意のフォルダ(ディレクトリ)内にあるファイルを調べたい場合、opendir関数を使います。

opendir("ここにディレクトリを指定");

この関数は引数に指定したディレクトリのハンドルをオープンし、そのディレクトリ内にあるファイルを操作することができます。

ディレクトリのハンドルをオープンできればリソースIDを、失敗すればfalseを返します。

falseが返された場合、E_WARNINGエラーが出力されますが、 opendir関数の前に「@」を付けているとエラー出力をキャンセルできます。

フォルダ(ディレクトリ)内にある全てのファイル名を取得するプログラム

opendir関数を使って指定したフォルダ(ディレクトリ)をオープンし、オープンしたディレクトリ内にあるファイルをループで処理していけば、全てのファイル名を取得することができます。

<?php
//現在いる(このプログラムファイルが存在する)ディレクトリのハンドルをオープンできれば処理を実行
if ($handle = opendir("./")) {
	//オープンしたディレクトリにファイルが存在すればループで取り出していく
	while(false !== ($entry = readdir($handle))) {
		//ファイル名が「.」「..」じゃなければ処理を実行
		if ($entry != "." && $entry != "..") {
			//ファイル名を出力
			echo $entry . "<br />";
		}
	}

	//オープンしたディレクトリのハンドルをクローズする
	closedir($handle);
}
?>

補足

 至って簡単なプログラムですが、7行目の部分【ファイル名が「.」「..」じゃなければ処理を実行】に?となるかもしれませんが、これはopendir関数で指定したフォルダをオープンすると、(理由は調べてませんが)「.」と「..」も一緒に出力されてしまいます。

これらは不必要なものなので、7行目において条件分岐で除外してあります。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント