【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行目において条件分岐で除外してあります。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム

