glob関数
関数 glob は、指定されたパターンに一致するファイルやディレクトリを検索します。
第一引数には検索パターンの文字列を渡します。
第二引数(オプション)は、関数の動作を変更するフラグを指定します。
構文
glob(pattern, [flags]);
フラグ
| フラグ | 説明 |
|---|---|
GLOB_MARK |
返される各ディレクトリにスラッシュ / を追加します。 |
GLOB_NOSORT |
ファイルをディレクトリ内にある順序(ソートなし)で返します。 |
GLOB_NOCHECK |
一致するファイルが見つからない場合、検索パターン自体を返します。 |
GLOB_NOESCAPE |
バックスラッシュがメタ文字をエスケープしません。 |
GLOB_BRACE |
{a,b,c} を展開して複数のパターンで検索します。 |
GLOB_ONLYDIR |
パターンに一致するディレクトリのみを返します。 |
GLOB_ERR |
読み取りエラー(例:アクセス権限なし)で停止します。 |
例
現在のディレクトリ内の拡張子 .txt のファイルをすべて検索します:
<?php
$res = glob('*.txt');
print_r($res);
?>
コード実行結果:
['file1.txt', 'file2.txt', 'notes.txt']
例
'test' で始まり、拡張子が任意のファイルをすべて検索します:
<?php
$res = glob('test*');
print_r($res);
?>
コード実行結果:
['test.php', 'test.txt', 'test_image.jpg']
例
複数のパターンで検索するための GLOB_BRACE フラグの使用:
<?php
$res = glob('*.{php,txt}', GLOB_BRACE);
print_r($res);
?>
コード実行結果:
['index.php', 'config.php', 'readme.txt']
例
GLOB_RECURSE フラグを使用したサブディレクトリ内のファイル検索:
<?php
$res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
print_r($res);
?>
コード実行結果:
['index.php', 'lib/utils.php', 'admin/index.php']
関連項目
-
関数
scandir,
ディレクトリの内容を読み取ります -
関数
file_exists,
ファイルの存在をチェックします -
関数
is_file,
ファイルかどうかをチェックします