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

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

PHPのmb_strrchr()関数は、マルチバイト文字列に対応した文字列検索関数の一つで、指定した文字列(検索対象)の中から、別の文字列(検索文字列)が最後に現れる位置を見つけ、その位置に基づいた部分文字列を返します。

例えば、「PHP Tutorials」という文字列から「ia」を検索する場合、mb_strrchr()関数は「ia」が最後に現れる位置以降の部分である「ials」を返します。もし検索文字列が見つからなければ、falseを返します。

mb_strrchr()関数の構文

string mb_strrchr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null)

パラメータ(引数)

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

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

  • $needle(検索文字列) − haystackの中から探したい文字列を指定します。

  • $before_needle(返す範囲の指定) − 戻り値としてどちら側の部分文字列を返すかを決めるブール値(true / false)です。
    true を指定した場合:文字列の先頭から、検索文字列が最後に現れる位置の直前までの部分を返します。
    false を指定した場合:検索文字列が最後に現れる位置から文字列の末尾までの部分を返します(デフォルトは false)。

  • $encoding(文字エンコーディング) − 使用する文字エンコーディングを指定できます。省略した場合は内部エンコーディングが使用されます。日本語などのマルチバイト文字を扱う際に重要なパラメータです。

戻り値

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

使用例1:$before_needle に false を指定した場合

<?php
   // 「PHP Tutorials」という文字列から「ia」を検索
   // $before_needle は false
   $string = mb_strrchr("PHP Tutorials", "ia", false);

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

出力結果

ials

「ia」が最後に現れるのは「Tutorials」の部分なので、そこから末尾までの「ials」が返されます。

使用例2:$before_needle に true を指定した場合

<?php
   // 「PHP Tutorials」という文字列から「ia」を検索
   // $before_needle は true
   $string = mb_strrchr("PHP Tutorials", "ia", true);

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

出力結果

PHP Tutor

$before_needle が true の場合は、先頭から検索文字列の直前までの「PHP Tutor」が返されます。

使用例3:大文字小文字が一致しない場合

<?php
    // 「PHP Tutorials」という文字列から「Ia」(大文字)を検索
    // 大文字のため一致せず、何も返らない
    $string = mb_strrchr("PHP Tutorials", "Ia", false);

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

注意: 上記の例では、検索文字列として大文字の「Ia」を指定しています。mb_strrchr()関数は大文字と小文字を区別する(case-sensitive)ため、小文字の「ia」とは一致せず、結果として何も返されません。大文字小文字を区別せずに検索したい場合は、mb_strrichr()関数を使用してください。

  1. PHPのquoted_printable_decode()関数とは?使い方とサンプルコードを解説

    PHPのquoted_printable_decode()関数は、quoted-printable形式でエンコードされた文字列を、8ビット文字列にデコードするために使用されます。メール本文などで使われるquoted-printableエンコーディングを元に戻したい場合に便利な関数です。 構文 quoted_printable_decode(str) パラメータ str − デコード対象となる入力文字列を指定します。 戻り値 quoted_printable_decode()関数は、デコード後の8ビットASCII文字列を返します。 使用例 以下は、quoted_printable_dec

  2. PHPのnl_langinfo()関数の使い方をわかりやすく解説

    PHPのnl_langinfo()関数は、現在のロケール(言語・地域設定)に関する情報を取得するための関数です。曜日名や月名、通貨記号、数値の書式など、ロケール固有のさまざまな情報を要素単位で取り出すことができます。通常、setlocale()でロケールを設定した後に使用します。 注意: この関数はWindows環境では動作しません。LinuxなどのUNIX系プラットフォームでのみ利用可能です。 構文 nl_langinfo(ele) パラメータ ele − 取得したい情報の要素を指定します。指定できる主な要素は以下の通りです。 時刻・カレンダー関連 ABDAY_(1-7) − 番号で指