mb_strrpos
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strrpos — 文字列の中に指定した文字列が最後に現れる位置を見つける
説明
mb_strrpos() は、マルチバイト対応の
strrpos() 操作を、文字数に基づいて行います。
needle
の位置を
haystack
の先頭から順に数えていきます。
最初の文字の位置は 0、二番目の文字の位置は 1 という具合です。
パラメータ
haystack
-
needle
が最後に登場する場所を調べたい文字列。 needle
-
haystack
の中で見つけたい文字列。 offset
- 指定すると、文字列中の任意の文字位置から検索を開始することができます。 負の値を指定すると、文字の終端より前の任意の位置で検索を終了します。
encoding
-
encoding
パラメータには文字エンコーディングを指定します。省略した場合、もしくはnull
の場合は、 内部文字エンコーディングを使用します。
戻り値
文字列 haystack
の中で
needle
が最後に現れる位置を数字で返します。
needle
が見付からなかった場合、false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
needle は、空の文字列も受け入れるようになりました。
|
8.0.0 |
3番目の引数に、offset の代わりに
encoding を渡すことができる仕様は削除されました。
|
8.0.0 |
encoding は、nullable になりました。
|
参考
- mb_strpos() - 文字列の中に指定した文字列が最初に現れる位置を見つける
- mb_internal_encoding() - 内部文字エンコーディングを設定あるいは取得する
- strrpos() - 文字列中に、ある部分文字列が最後に現れる場所を探す
+add a note
User Contributed Notes 2 notes
Anonymous ¶
19 years ago
mb_strrpos throws a warning if $haystack is empty.
strrpos simply returns FALSE.
This is something to be wary of if overloading the mb functions.
Anonymous ¶
9 years ago
"Negative values will stop searching at an arbitrary point prior to the end of the string. " ist misleading.
The needle may not fully part of searchrange, defined by a negative offset.
A negative offsets marks the last byte, where a search could start.
<?php
$test = "Hallo, Herr Gött";
var_dump(strlen($test)); // int(17)
var_dump(mb_strrpos($test,'ött',13)); // int(13)
var_dump(mb_strrpos($test,'ött',-4)); // int(13) 17-4 = 13
var_dump(mb_strrpos($test,'ött',-5)); // bool(false)
?>