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

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

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

opendir関数を使う

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

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

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

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

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

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

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

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

補足

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

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

 

あわせて読んでほしい!

 

コメント

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

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