Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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というのをつけていろいろできる。

参考(公式サイト)

http://php.net/manual/ja/function.glob.php

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 - (ディレクトリが読めないなどの) 読み込みエラー時に停止します。デフォルトではエラーは無視されます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away