LoginSignup
64
61

More than 5 years have passed since last update.

PHPで任意のディレクトリ下にあるファイルを一覧取得する方法

Posted at

globという関数を使う。*が使えるので便利。

使い方

dir以下のファイルを全て取得してくれる。ファイルがひとつもない場合は空の配列が返ってくる。

foreach(glob('dir/*') as $file){
    if(is_file($file)){
        echo htmlspecialchars($file);
    }
}

拡張子を指定したりもできる。

foreach(glob('dir/{*.gif,*.zip,*.pdf}',GLOB_BRACE) as $file){
    if(is_file($file)){
        echo htmlspecialchars($file);
    }
}

引数にflagsというのをつけていろいろできる。

参考(公式サイト)

array glob ( string $pattern [, int $flags = 0 ] )

flags

  • GLOB_MARK - 各ディレクトリにスラッシュを追加します
  • GLOB_NOSORT - ディレクトリに存在するファイルを返します (ソートはされません)。このフラグを使わない場合は、パス名をアルファベット順にソートします。
  • GLOB_NOCHECK - 検索パターンにマッチするファイルが見つからない場合に、 検索パターン自身を返します
  • GLOB_NOESCAPE - バックスラッシュによるメタ文字のクォートを行いません
  • GLOB_BRACE - {a,b,c} を展開し「a」、「b」あるいは「c」のいずれかにマッチさせます
  • GLOB_ONLYDIR - パターンにマッチするディレクトリのみを返します
  • GLOB_ERR - (ディレクトリが読めないなどの) 読み込みエラー時に停止します。デフォルトではエラーは無視されます。
64
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
61