fnmatch: ファイル名がパターンにマッチするか調べる (ファイルシステム 関数) - PHPプロ!マニュアル
fnmatch: ファイル名がパターンにマッチするか調べる
fnmatch
(PHP 4 >= 4.3.0, PHP 5)
fnmatch — ファイル名がパターンにマッチするか調べる
説明
fnmatch()はstring で指定された文字列が pattern で指定されたシェルワイルドカードにマッチするかどうかチェックします。
パラメータ
- pattern
-
シェルのワイルドカードパターン。
- string
-
調べたい文字列。この機能は特にファイル名のマッチに便利ですが、 通常の文字列に関しても使用できます。
一般的なユーザにとって、シェルパターンやあるいは少なくとも '?'と'*'によるワイルドカードのほうが 慣れていると思われます。そのため、 preg_match() の代わりに fnmatch() をフロントエンドの検索表現として使うことは、 プログラマではないユーザにとってより便利でしょう。
- flags
-
flags の値は、以下のフラグを 論理 OR (|) 演算子 で連結した任意の組み合わせです。
fnmatch() で使えるフラグ フラグ 説明 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 に準拠していないシステムで利用できません。
参考
- glob() - パターンにマッチするパス名を探す
- preg_match() - 正規表現によるマッチングを行う
- sscanf() - フォーマット文字列に基づき入力を処理する
- printf() - フォーマット済みの文字列を出力する
- sprintf() - フォーマットされた文字列を返す




ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!