PHPのglob関数でファイル名のみ取得する方法を現役エンジニアが解説【初心者向け】
初心者向けにPHPのglob関数でファイル名のみ取得する方法について現役エンジニアが解説しています。glob関数とは、PHPでパターンにマッチするファイルパスを探すことができる関数です。引数のオプションフラグについて解説します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、PHPのglob関数でファイル名のみ取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PHPについてそもそもよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まるでしょう。
なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。
今回は、PHPに関する内容だね!
どういう内容でしょうか?
PHPのglob関数でファイル名のみ取得する方法について詳しく説明していくね!
お願いします!
目次
glob関数とは
glob関数はPHPの標準関数で、PHP4.3.0以上の4系、 PHP5系、 PHP7系で利用できます。
glob関数はパターンにマッチするパスを探すことができる関数です。
あるフォルダの中に入っている特定のパターンに一致するファイル名を取得することができる関数です。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
glob関数でファイル名のみを取得する方法
glob関数は以下のように記述しましょう。
glob(ファイル名を取得したいパス[, オプションフラグ]);
glob関数の第1引数に探したいパターンになるパスを指定します。
指定したパスから配列の形式でファイル名やフォルダ名を取得可能です。
オプションフラグは、任意で設定することができ以下の値を設定できます。
オプション | 説明 |
---|---|
GLOB_MARK | 各ディレクトリにスラッシュを追加することが可能 |
GLOB_NOSORT | ? ディレクトリに存在するファイルを返す |
GLOB_NOCHECK | ? パターンにマッチするファイル無いときに、パターン自体を返す |
GLOB_NOESCAPE | バックスラッシュを利用した、メタ文字のクォートを行わない |
GLOB_BRACE | 「a」、「b」あるいは「c」のいずれかにマッチさせることが可能 |
GLOB_ONLYDIR | パターンにマッチするディレクトリのみを返す |
GLOB_ERR | ディレクトリを無事ができない等のエラーの際は処理を停止 |
実際に書いてみよう
glob関数を使ってファイル名を取得してみましょう。
ソースコード
<?php echo "*と書く場合<br/>"; foreach (glob("TEST/*") as $filename) { echo$filename."<br/>"; } echo "<br/>*.phpと書く場合<br/>"; foreach (glob("TEST/*.php") as $filename) { echo$filename."<br/>"; } echo "<br/>*.*と書く場合<br/>"; foreach (glob("TEST/*.*") as $filename) { echo$filename."<br/>"; }
実行結果
*と書く場合 TEST/TEST02 TEST/test01.txt TEST/test02.txt TEST/test03.txt TEST/test04.txt TEST/test05.php *.phpと書く場合 TEST/test05.php *.*と書く場合 TEST/test01.txt TEST/test02.txt TEST/test03.txt TEST/test04.txt TEST/test05.php
フォルダ名/*とするとフォルダの下のファイル名とフォルダ名を取得します。
フォルダ名/*.phpとするとPHPファイルのみ取得します。フォルダ名/*.*とすると全てのファイル名を取得可能です。
まとめ
この記事ではPHPのglob関数でファイル名のみ取得する方法について解説しました。
glob関数は最近使えるようになった便利な関数です。
使い方を理解して使えるようにしましょう。
執筆してくれたメンター
メンターSさん
システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。 JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。 |
PHPのglob関数でファイル名のみ取得する方法がよく分かったので良かったです!
ゆかりちゃん、これからも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、PHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。