【PHP8.x】fnmatch関数の使い方

作成日: 更新日:

fnmatch関数は、シェルで一般的に使用されるワイルドカードパターンを用いて、指定した文字列がパターンに一致するかどうかを検査する関数です。この関数は、主に2つの引数を取ります。第1引数には *(任意の0文字以上の文字列)や ?(任意の1文字)といったワイルドカードを含むパターン文字列を、第2引数には検査したい文字列(例えばファイル名)を指定します。検査の結果、文字列がパターンに一致すれば true を、一致しなければ false を返します。さらに、オプションの第3引数にフラグ定数を指定することで、マッチングの挙動を調整できます。例えば、FNM_CASEFOLD フラグを使用すると大文字と小文字を区別しない比較が行われ、FNM_PATHNAME フラグを使用するとパス区切り文字のスラッシュはパターン内のスラッシュにのみ一致するようになります。この関数は、ディレクトリ内のファイル一覧から特定の拡張子を持つファイルだけを抽出するなど、ファイル名のフィルタリング処理を簡単に行いたい場合に特に有効で、正規表現よりもシンプルに扱える点が特徴です。

基本的な使い方

構文(syntax)

<?php

$isMatch = fnmatch("*.log", "access.log");

?>

引数(parameters)

string $pattern, string $string, int $flags = 0

  • string $pattern: マッチングに使用するワイルドカードパターンを指定する文字列
  • string $string: パターンと比較する対象の文字列
  • int $flags = 0: マッチングの挙動を制御するフラグ。デフォルトは0(フラグなし)

戻り値(return)

bool

指定されたパターンに文字列が一致した場合は true、一致しなかった場合は false を返します。

【PHP8.x】fnmatch関数の使い方 | いっしー@Webエンジニア