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

PHPのmb_stristr()関数とは?使い方とサンプルコードを徹底解説

PHPのmb_stristr()関数は、指定した文字列(haystack)の中から、検索したい文字列(needle)が最初に現れる位置を探すための関数です。この関数の大きな特徴は、大文字と小文字を区別しないという点にあります。needleが見つかった場合はhaystackの該当部分の文字列を返し、見つからなかった場合はfalseを返します。

構文

string mb_stristr(
   $str_haystack,
   $str_needle,
   $bool_before_needle = false,
   $str_encoding = null
)

パラメータ

mb_stristr()関数は、以下の4つのパラメータを受け取ります。

  • $str_haystack − 検索対象となる元の文字列です。この文字列の中からneedleを探します。

  • $str_needle − 検索したい文字列です。haystackの中からこの文字列を探し出します。

  • $bool_before_needle − 返される文字列の範囲を決めるパラメータです。

    • true を指定した場合:文字列の先頭から、needleが最初に現れる位置までの部分を返します(needle自体は含まれません)。

    • false を指定した場合:needleが最初に現れる位置から文字列の末尾までを返します(needle自体も含まれます)。デフォルト値はfalseです。

  • $str_encoding − 文字エンコーディングを指定するパラメータです。省略した場合は、PHPの内部文字エンコーディングが使用されます。

戻り値

needleが見つかった場合は、haystackの該当部分の文字列を返します。needleが見つからなかった場合はfalseを返します。

サンプルコード1

<?php
   // 文字列「Hello World」を使用
   // before_needle に false を指定
   $string = mb_stristr("Hello World", "or", false);

   // 出力
   print_r($string);
?>

出力結果

orld

この例では、「or」が最初に現れる位置(「World」の「or」)から末尾までが出力されていることがわかります。

サンプルコード2

<?php
   // 文字列「Hello World」を使用
   // before_needle に true を指定
   $string = mb_stristr("Hello World", "or", true);

   // 出力
   print_r($string);
?>

出力結果

Hello W

第3引数にtrueを指定すると、needleより前の部分だけが返されます。needle自体は結果に含まれない点に注意してください。

補足: mb_stristr()stristr()と同様の動作をする関数ですが、最大の違いは大文字と小文字を区別しない点です。さらにマルチバイト文字列(日本語など)にも対応しているため、マルチバイト対応が必要な国際化アプリケーションにおいて特に有用な関数といえます。

  1. PHPのstr_repeat()関数とは?文字列を繰り返す方法を解説

    PHPのstr_repeat()関数は、指定した文字列を指定回数だけ繰り返して出力するための組み込み関数です。区切り線やパディング、テスト用のダミーデータ生成など、さまざまな場面で活用できます。基本構文str_repeat(str_to_repeat, multiplier)パラメータstr_to_repeat − 繰り返したい対象の文字列を指定します。multiplier − 文字列を繰り返す回数を指定します。0以上の整数である必要があります。0を指定した場合は空文字列が返されます。戻り値str_repeat()関数は、繰り返し処理を行った結果の文字列を返します。使用例以下は、ドル記号「$」

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

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