今日の人気記事

  1. 変数を文字列型に変換 - strval関数

文字列が最後に現れる場所を取得 - strrpos()、mb_strrpos()

当ページのリンクには広告が含まれています。

Webプログラミング言語PHPで、文字列内に指定した文字列が最後に現れる場所を取得するstrrpos()、マルチバイト版のmb_strrpos()を紹介します。

strrpos関数

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
文字列内に指定した文字列が最後に現れる場所を取得します。
引数
$haystack
検索対象の文字列を指定します。
$needle
検索する文字列を指定します。
$offset
文字列検索開始位置を指定します。
省略した場合は文字列の最初「0」から検索します。
返り値
指定した文字列が見つかった場合は最後に現れる場所を、
失敗した場合は、falseを返します。

ref. » 文字列が最初に現れる場所を取得 - strpos、mb_strpos

サンプルコード

文字列内から指定した文字列が最初に現れる場所を取得するサンプルコードです。

strrpos( 検索対象の文字列, 検索する文字列 )
<?php
/* 文字列が最後に現れる場所を取得 */
$haystack = "abcdefgd";
var_dump(strrpos($haystack, "d"));
var_dump(strrpos($haystack, "x"));
?>

実行結果です。文字列内から指定した文字列が最後に現れる場所が取得されています。失敗した場合は、falseを返します。日本語を検索する場合は、マルチバイト版のmb_strpos関数を使いましょう(後述)。

int(7)
bool(false)

mb_strrpos関数

int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding ]] )
文字列内に指定した文字列が最後に現れる場所を取得します。
strrpos関数のマルチバイト版です。
引数
$haystack
検索対象の文字列を指定します。
$needle
検索する文字列を指定します。
$offset
文字列検索開始位置を指定します。
省略した場合は文字列の最初「0」から検索します。
$encoding
エンコーディングを指定します。
エンコーディングの指定を省略した場合は、 内部エンコーディングを使用します。
返り値
指定した文字列が見つかった場合は最後に現れる場所を、
失敗した場合は、falseを返します。

内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring

サンプルコード

文字列内から指定した文字列が最後に現れる場所を取得するマルチバイト版のサンプルコードです。

mb_strrpos( 検索対象の文字列, 検索する文字列 )
<?php
/* マルチバイト文字列が最後に現れる場所を取得 */
$haystack = "日本語の文字列を検索。日本語検索。";
var_dump(mb_strrpos($haystack, "文"));
var_dump(mb_strrpos($haystack, "検"));
var_dump(mb_strrpos($haystack, "国"));
?>

実行結果です。日本語の文字列内から指定した文字列が最後に現れる場所が取得されています。失敗した場合は、falseを返します。

int(4)
int(14)
bool(false)

文字列 の人気記事

  1. 文字列の長さを取得 - strlen()、mb_strlen()
  2. 配列を文字列に変換する - implode()
  3. 文字列が最初に現れる場所を取得 - strpos()、mb_strpos()
  4. 文字列が最後に現れる場所を取得 - strrpos()、mb_strrpos()
  5. 指定した文字列以降の文字列を取得 - strstr()、strchr() - mb_strstr()
  6. 文字列をURLエンコード・デコード - urlencode()、urldecode()
  7. PHP関数リファレンス

関連記事(一部広告含む)