PHP 文字列の位置を取得する(mb_strpos/mb_strrpos)

PHPの文字列の位置を取得するサンプルです。

確認環境
・PHP 7.1.8

目次

mb_strpos関数

mb_strpos ( string 対象の文字列 , string 検索する文字 [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )
  • 文字列を左(先頭の文字)から右に検索して出現した位置(数値)を返します。
  • 先頭の1文字目の位置は0です。
  • 戻り値はintです。該当値がない場合はfalseです。
  • offsetは検索を始める位置です。省略可能です。
  • 日本語などのマルチバイト文字に対応しています。
  • マルチバイト文字を使用しない場合は、mb_が付かないstrpos関数を使用できます。
  • 以下は、PHPマニュアルのmb-strpos関数のリンクです。
    https://www.php.net/manual/ja/function.mb-strpos.php

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を左(先頭の文字)から検索します。

<?php

$str1 = "あいうabcあいう";

var_dump(mb_strpos($str1,"b")); //int(4)

var_dump(mb_strpos($str1,"abc",0,"UTF-8")); //int(3)

var_dump(mb_strpos($str1,"あいう")); //int(0)

var_dump(mb_strpos($str1,"あいえ")); //bool(false)

?>

5,7行目は、指定した文字列が見つかった位置を返しています。
9行目は、文字列を左から見て最初に出現する"あいう"の位置を返しています。
11行目は、指定した文字がないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

<?php

$str1 = "あいうえお";

var_dump(mb_strpos($str1,"う",2)); //int(2)

var_dump(mb_strpos($str1,"う",3)); //bool(false)

?>/code>

5行目の引数は2なので対象の文字列は(うえお)です。引数の文字列(う)が見つかった位置を返しています。
7行目の引数は3なので対象の文字列は(えお)です。引数の文字列(う)が見つからないのでfalseを返します。

 

mb_strrpos関数

mb_strrpos ( string 対象の文字列 , string 検索する文字 [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )
  • 文字列を右(最後の文字)から左に検索して出現した位置(数値)を返します。
  • 先頭の1文字目の位置は0です。
  • 戻り値はintです。該当値がない場合はfalseです。
  • offsetは検索を始める位置です。省略可能です。
  • 日本語などのマルチバイト文字に対応しています。
  • マルチバイト文字を使用しない場合は、mb_が付かないstrrpos関数を使用できます。
  • 以下は、PHPマニュアルのmb_strrpos関数のリンクです。
    https://www.php.net/manual/ja/function.mb-strrpos.php

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を右(最後の文字)から検索します。

<?php

$str1 = "あいうabcあいう";

var_dump(mb_strrpos($str1,"b")); //int(4)

var_dump(mb_strrpos($str1,"abc",0,"UTF-8")); //int(3)

var_dump(mb_strrpos($str1,"あいう")); //int(6)

var_dump(mb_strrpos($str1,"あいえ")); //bool(false)

?>

5,7行目は、引数の文字列が見つかった位置を返しています。
9行目は、文字列を右から見て最初に出現する"あいう"の位置を返しています。
11行目は、引数の文字列が見つからないのでfalseを返します。

関連の記事

PHP 文字列が一致するか比較するサンプル(strcmp)
PHP 文字列の長さを取得するサンプル(mb_strlen/strlen)
PHP 英字の大文字と小文字を変換(strtolower/strtoupper)
PHP 文字列の一部を取得するサンプル(mb_substr/substr)

△上に戻る