glob関数

関数 glob は、指定されたパターンに一致するファイルやディレクトリを検索します。 第一引数には検索パターンの文字列を渡します。 第二引数(オプション)は、関数の動作を変更するフラグを指定します。

構文

phpglob(pattern, [flags]);

フラグ

フラグ 説明
GLOB_MARK 返される各ディレクトリにスラッシュ / を追加します。
GLOB_NOSORT ファイルをディレクトリ内にある順序(ソートなし)で返します。
GLOB_NOCHECK 一致するファイルが見つからない場合、検索パターン自体を返します。
GLOB_NOESCAPE バックスラッシュがメタ文字をエスケープしません。
GLOB_BRACE {a,b,c} を展開して複数のパターンで検索します。
GLOB_ONLYDIR パターンに一致するディレクトリのみを返します。
GLOB_ERR 読み取りエラー(例:アクセス権限なし)で停止します。

例

現在のディレクトリ内の拡張子 .txt のファイルをすべて検索します:

php<?php
  $res = glob('*.txt');
  print_r($res);
?>

コード実行結果:

php['file1.txt', 'file2.txt', 'notes.txt']

例

'test' で始まり、拡張子が任意のファイルをすべて検索します:

php<?php
  $res = glob('test*');
  print_r($res);
?>

コード実行結果:

php['test.php', 'test.txt', 'test_image.jpg']

例

複数のパターンで検索するための GLOB_BRACE フラグの使用:

php<?php
  $res = glob('*.{php,txt}', GLOB_BRACE);
  print_r($res);
?>

コード実行結果:

php['index.php', 'config.php', 'readme.txt']

例

GLOB_RECURSE フラグを使用したサブディレクトリ内のファイル検索:

php<?php
  $res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
  print_r($res);
?>

コード実行結果:

php['index.php', 'lib/utils.php', 'admin/index.php']

関連項目

  • 関数 scandir,
    ディレクトリの内容を読み取ります
  • 関数 file_exists,
    ファイルの存在をチェックします
  • 関数 is_file,
    ファイルかどうかをチェックします