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)
mb_strrpos — Find position of last occurrence of a string in a string
$haystack
, string $needle
[, int $offset = 0
[, string $encoding = mb_internal_encoding()
]] )
Performs a multibyte safe
strrpos() operation based on the
number of characters. needle position is
counted from the beginning of
haystack. First character's position is
0. Second character position is 1.
haystack
The string being checked, for the last occurrence
of needle
needle
The string to find in haystack.
offsetencodingThe encoding
parameter is the character encoding. If it is omitted, the internal character
encoding value will be used.
Returns the numeric position of
the last occurrence of needle in the
haystack string. If
needle is not found, it returns FALSE.
| Version | Description |
|---|---|
| 5.2.0 | Added the optional parameter offset. |
Note: The
encodingparameter was moved from the third position to the fourth in PHP 5.2.0. For backward compatibility,encodingcan be specified as the third parameter, but doing so is deprecated and will be removed in the future.
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)
?>