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

PHPのfnmatch()関数とは?構文・パラメータ・使用例をわかりやすく解説

fnmatch()関数とは

PHPのfnmatch()関数は、ファイル名や文字列が、指定されたシェル形式(glob形式)のワイルドカードパターンに一致するかどうかを判定する関数です。Unix系システムのシェルで使われるパターンマッチングと同様のルールで照合を行うため、特定の命名規則に従ったファイル名を検索したい場合などに便利です。

構文

fnmatch(pattern, string, flags)

パラメータ

  • pattern − 照合に使用するパターンを指定します。

  • string − テスト対象となる文字列(ファイル名など)を指定します。

  • flags − マッチングの動作を変更するためのフラグです。以下の値のいずれかを指定できます。

    • FNM_NOESCAPE − バックスラッシュ(\)によるエスケープ処理を無効にします。

    • FNM_PATHNAME − 文字列内のスラッシュ(/)は、パターン内のスラッシュにのみ一致します。

    • FNM_PERIOD − 文字列の先頭にあるピリオド(.)は、パターン内のピリオドと正確に一致する必要があります。

戻り値

パターンが一致した場合はTRUEを、一致しなかった場合はFALSEを返します。

使用例:ワイルドカードパターンでの照合

次の例では、ワイルドカード「*」と文字クラス「[zs]」を組み合わせたパターンを使って、ファイル名との照合を行っています。

サンプルコード

<?php
   $file = "organization.txt";
   if (fnmatch("*organi[zs]ation", $file)) {
      echo "Found!";
   } else {
      echo "Not found!";
   }
?>

出力結果

Not found!

この例では、パターン「*organi[zs]ation」は「organisation」または「organization」で終わる文字列にのみ一致します。一方、テスト対象の「organization.txt」は末尾に拡張子「.txt」が付いているため、パターンと完全には一致せず、「Not found!」が出力されます。

拡張子を含むファイル名全体を一致させたい場合は、パターンを「*organi[zs]ation*」のように前後をワイルドカードで囲むことで対応できます。

  1. PHPのstr_pad()関数とは?文字列のパディング方法をわかりやすく解説

    PHPのstr_pad()関数は、文字列を指定した長さまで特定の文字で埋め(パディング)、新しい長さの文字列を返す関数です。文字列の左側・右側・両側に任意の文字を追加したい場合に便利です。 基本構文 str_pad(str, len, pad_str, pad_type) パラメータの詳細 str − パディング対象となる元の文字列を指定します。 len − パディング後の新しい文字列の長さを指定します。 pad_str − 埋め合わせに使用する文字列(パディング文字)を指定します。省略した場合は半角スペースが使用されます。 pad_type − 文字列のどちら側にパディングするかを指定しま

  2. PHPのquoted_printable_encode()関数の使い方を徹底解説

    PHPのquoted_printable_encode()関数は、8ビット文字列をquoted-printable形式の文字列に変換するための組み込み関数です。quoted-printableはMIME(Multipurpose Internet Mail Extensions)で定義されているエンコード方式の一つで、主に電子メールで非ASCII文字(日本語など)を安全に送信する際に利用されます。構文quoted_printable_encode(str)パラメータstr − 変換対象となる8ビット文字列を指定します。この引数は必須です。戻り値quoted_printable_encode()