PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP入門】glob()関数の使い方を徹底解説!パターンに一致するファイル・ディレクトリを取得する方法

PHPのglob()関数とは

glob()関数は、指定されたパターンに一致するファイル名やディレクトリ名を配列として返す関数です。ワイルドカードを使用できるため、「特定の拡張子を持つファイルだけを一覧取得したい」といった場面で非常に便利です。

戻り値の挙動

  • 一致するファイル・ディレクトリが見つかった場合:該当する要素を含む配列を返す
  • 一致するものが1件もなかった場合:空の配列を返す
  • エラーが発生した場合:FALSEを返す

構文

glob(pattern, flags)

パラメータ

  • pattern − 検索対象となるパターンを指定します。「*.htm」のようにワイルドカードを使った指定が可能です。

  • flags − 関数の動作を変更するためのオプションフラグです。主なフラグは以下の通りです。

    • GLOB_MARK - 返される各項目にスラッシュ(/)を追加します
    • GLOB_NOSORT - ディレクトリ内の出現順のまま返します(ソートを行いません)
    • GLOB_NOCHECK - 一致するものが見つからなかった場合、検索パターン自体を返します
    • GLOB_NOESCAPE - バックスラッシュによるメタ文字のエスケープを無効にします
    • GLOB_BRACE - {p,q,r} を展開し、「p」「q」「r」のいずれかに一致させます
    • GLOB_ONLYDIR - パターンに一致するディレクトリのみを返します
    • GLOB_ERR - エラー発生時に処理を停止します。デフォルトではエラーは無視されます

戻り値

glob()関数は、一致したファイル・ディレクトリを格納した配列を返します。一致するファイルが存在しない場合は空の配列を、エラーが発生した場合はFALSEを返します。

使用例1:特定の拡張子のファイルを取得する

<?php
   print_r(glob("*.htm"));
?>

出力結果

Array
(
   [0] => one.htm
   [1] => two.htm
   [2] => three.htm
)

この例では、カレントディレクトリ内にある「.htm」という拡張子を持つすべてのファイルを取得し、print_r()で配列の中身を表示しています。

使用例2:全ファイル名とファイルサイズを表示する

<?php
   foreach (glob("*.*") as $myfiles) {
      echo "$myfiles filesize = " . filesize($myfiles) . "\n";
   }
?>

出力結果

one.htm filesize = 56790
two.htm filesize = 432987
new.docx filesize = 184256
students.csv filesize = 4626
php.int filesize = 1287
settings.ini filesize = 3516

この例では、glob("*.*")ですべてのファイルを取得し、foreachループで各ファイル名とfilesize()関数によるファイルサイズ(バイト単位)を出力しています。このようにglob()関数はforeachと組み合わせることで、ディレクトリ内のファイルを効率的に処理できます。

  1. PHPのlog10()関数とは?常用対数の計算方法と具体例をわかりやすく解説

    定義と使用方法log10() 関数は、数値の常用対数(底が10の対数)を計算するための関数です。常用対数は「10を底とする対数」とも呼ばれ、log10x を求める際に使用されます。自然対数との間には、次のような関係式が成り立ちます。log10x = logex / loge10この式に基づけば、たとえば次のように計算できます。log10100 = loge100 / loge10 = 2PHPでは、この常用対数の計算を log10() 関数が担っています。構文log10 ( float $arg ) : floatパラメータ番号パラメータと説明1arg常用対数(底10の対数)を計算したい数値を

  2. PHPのfilesize()関数の使い方|ファイルサイズをバイト単位で取得する方法

    PHPのfilesize()関数は、指定したファイルのサイズを取得するための関数です。処理に成功した場合はファイルサイズをバイト単位で返し、失敗した場合(ファイルが存在しない、アクセス権限がないなど)にはFALSEを返します。 構文 filesize(file_path) パラメータ file_path − サイズを取得したいファイルへのパスを指定します。相対パス・絶対パスのどちらも利用できます。 戻り値 filesize()関数は、成功した場合にファイルのサイズをバイト単位で返します。失敗した場合(ファイルが見つからない場合など)はFALSEを返し、同時にE_WARNINGレベルのエラー