{category}

PHP - ディレクトリ操作

glob()

グロブ(ファイルとI/O操作

意味 パターンに一致するファイル検索


glob()とは?

glob()関数は、指定したパターンに一致するファイルやディレクトリを検索し、その結果を配列として返します。ワイルドカード(*や?)を使って柔軟な検索ができるので、特定の種類のファイルを見つけるのに便利です。

glob()の具体的な使い方

PNGファイル検索例

$pngFiles = glob('images/*.png');
foreach ($pngFiles as $file) {
    echo $file . "\n";
}

👇出力結果

images/logo.png
images/background.png
images/icon.png

この例では、'images'ディレクトリ内のすべてのPNGファイルを検索しています。結果として、'images'フォルダ内にある全てのPNGファイルの名前(パスを含む)が一行ずつ表示されます。

複数の拡張子を指定した検索

$imageFiles = glob('images/*.{jpg,png,gif}', GLOB_BRACE);
foreach ($imageFiles as $file) {
    echo $file . "\n";
}

👇出力結果

images/photo.jpg
images/logo.png
images/animation.gif

この例では、'images'ディレクトリ内のJPG、PNG、GIF形式の画像ファイルを全て検索しています。GLOB_BRACEフラグを使用することで、中括弧内の複数の拡張子を指定できます。

ディレクトリの検索

$directories = glob('*', GLOB_ONLYDIR);
foreach ($directories as $dir) {
    echo $dir . "\n";
}

👇出力結果

images
documents
videos

この例では、現在のディレクトリ内にあるすべてのサブディレクトリを検索しています。GLOB_ONLYDIRフラグを使用することで、ファイルを除外しディレクトリのみを取得します。

glob()に関するよくある質問

Q. glob()で複数の拡張子を指定できる?
A. はい、できます。例えば、'*.{jpg,png,gif}'のように中括弧{}を使って複数の拡張子を指定できます。これにより、JPG、PNG、GIF形式のファイルを一度に検索できます。
Q. glob()は再帰的に検索できますか?
A. 標準のglob()関数は再帰的な検索を直接サポートしていません。ただし、GLOB_BRACE | GLOB_ONLYDIR フラグを使用して、サブディレクトリを含む検索パターンを作成することで、似たような効果を得ることができます。完全な再帰的検索には、RecursiveDirectoryIteratorクラスの使用をお勧めします。

PHPのglob()についても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのglob()やfile_exists()、move_uploaded_file()、fopen()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

file_exists()

ファイルの存在確認

種類: ファイル情報

move_uploaded_file()

アップロードファイルの移動

種類: ファイルアップロード

fopen()

ファイルを開く関数

種類: ファイル読み書き

function

特定の処理をまとめる

種類: 関数の定義

__construct()

オブジェクト生成時に実行

種類: マジックメソッド