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