【PHP8.x】FNM_NOESCAPE定数の使い方
FNM_NOESCAPE定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
FNM_NOESCAPE定数は、ファイル名のパターンマッチングを行う際に、特定の動作を制御するために使用される定数です。PHPのfnmatch()関数など、ワイルドカードを含む文字列比較を行う場面で利用されます。この定数をfnmatch()関数のflags引数に指定すると、パターン文字列内のバックスラッシュ(\)が特殊なエスケープ文字として扱われなくなります。
通常、パターンマッチングにおいて、バックスラッシュはそれに続く文字を特殊な意味から解放し、文字そのものとして扱うためのエスケープ文字として機能します。例えば、\*というパターンは、通常であればワイルドカードとしてではなく、文字通りのアスタリスク*にマッチします。しかし、FNM_NOESCAPE定数を指定すると、バックスラッシュはエスケープ文字としての機能を持たず、単なる普通の文字として扱われるようになります。
これにより、\*というパターンは、バックスラッシュの後にアスタリスクが続く文字列にそのままマッチするようになります。ファイルパスやURLなど、バックスラッシュがエスケープ文字ではなく、パス区切り文字やその他の通常の文字として含まれる可能性がある文字列をパターンマッチングする際に、意図しないエスケープ処理を避けるためにこの定数が役立ちます。FNM_NOESCAPE定数を用いることで、バックスラッシュを含む文字列の比較をより柔軟かつ直感的に制御することが可能になります。
構文(syntax)
1<?php 2fnmatch('pattern', 'string', FNM_NOESCAPE); 3?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません