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