(PHP 4 >= 4.3.0, PHP 5, PHP 7)
fnmatch — ファイル名がパターンにマッチするか調べる
$pattern
, string $string
[, int $flags
= 0
] ) : bool
fnmatch()はstring
で指定された文字列が
pattern
で指定されたシェルワイルドカードにマッチするかどうかチェックします。
pattern
シェルのワイルドカードパターン。
string
調べたい文字列。この機能は特にファイル名のマッチに便利ですが、 通常の文字列に関しても使用できます。
一般的なユーザーにとって、シェルパターンやあるいは少なくとも '?'と'*'によるワイルドカードのほうが 慣れていると思われます。そのため、 preg_match() の代わりに fnmatch() をフロントエンドの検索表現として使うことは、 プログラマではないユーザーにとってより便利でしょう。
flags
flags
の値は、以下のフラグを
論理 OR (|) 演算子
で連結した任意の組み合わせです。
フラグ |
説明 |
---|---|
FNM_NOESCAPE |
バックスラッシュのエスケープを無効にする。 |
FNM_PATHNAME |
文字列内のスラッシュは、指定したパターン内のスラッシュにのみマッチする。 |
FNM_PERIOD |
文字列の先頭のピリオドは、指定したパターン内のピリオドにマッチしなければならない。 |
FNM_CASEFOLD |
大文字小文字を区別しないマッチ。GNU 拡張の一部。 |
マッチした場合に TRUE
、それ以外の場合に FALSE
を返します。
バージョン | 説明 |
---|---|
5.3.0 | この関数は Windows プラットフォームでも動作するようになりました。 |
例1 シェルのワイルドカードパターンによる色の名前のチェック
<?php
if (fnmatch("*gr[ae]y", $color)) {
echo "some form of gray ...";
}
?>
今のところ、この機能は POSIX に準拠していないシステムで利用できません (ただし、Windows では利用できます)。