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

環境
PHP 8.1.2
Ubuntu 22.04.1 LTS

構文
glob(string $pattern, int $flags = 0): array|false
glob() 関数は libc の glob() 関数で使われるルールに基づいて pattern に
マッチする全てのパス名を検索します。 ルールは、一般のシェルで使われる
ルールと似ています。
pattern
パターン。チルダの展開やパラメータ置換は行いません。

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

使用例1

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

拡張子を指定してファイルを取得します。

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

 

IT

Posted by arkgame