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.
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strrpos — 文字列の中に指定した文字列が最後に現れる位置を見つける
$haystack
, string $needle
, int $offset
= 0
, string|null $encoding
= null
) : int|false
mb_strrpos() は、マルチバイト対応の
strrpos() 操作を、文字数に基づいて行います。
needle
の位置を
haystack
の先頭から順に数えていきます。
最初の文字の位置は 0、二番目の文字の位置は 1 という具合です。
haystack
needle
が最後に登場する場所を調べたい文字列。
needle
haystack
の中で見つけたい文字列。
offset
encoding
encoding
パラメータには文字エンコーディングを指定します。省略した場合、もしくは null
の場合は、
内部文字エンコーディングを使用します。
文字列 haystack
の中で
needle
が最後に現れる位置を数字で返します。
needle
が見付からなかった場合、false
を返します。
注意:
encoding
パラメータは、 PHP 5.2.0 以降は三番目のパラメータではなく四番目のパラメータに変わりました。 過去との互換性を保つためにencoding
を三番目の引数で指定することもできますが、これは推奨されません。 将来は削除される予定です。
バージョン | 説明 |
---|---|
8.0.0 |
encoding は、nullable になりました。
|
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.
"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)
?>