strrpos
strrpos
Find the position of the last occurrence of a substring in a string
**strrpos** string $haystack string $needle int $offset
Find the numeric position of the last occurrence of
in the string.
needle``haystack
haystackThe string to search in.
needleThe string to search for.
offset
If zero or positive, the search is performed left to right skipping the
first bytes of the
.
offset``haystack
If negative, the search starts bytes from
the right instead of from the beginning of .
The search is performed right to left, searching for the first
occurrence of from the selected byte.
`offset``haystack``needle`> **Opmerking:** > This is effectively looking for the last occurrence of
at or before the last bytes. `needle``offset`
Returns the position where the needle exists relative to the beginning of the string (independent of search direction or offset).
haystack> Opmerking: > String positions start at 0, and not 1.
Returns false if the needle was not found.
-
If is greater than the length of , a will be thrown.
offset``haystack``ValueErrorVoorbeeld: Checking if a needle is in the haystack
It is easy to mistake the return values for "character found at position 0" and "character not found". Here's how to detect the difference:
<?php
$mystring = 'Elephpant';
$pos = strrpos($mystring, "b");
if ($pos === false) { // note: three equal signs
// not found...
}
?>
Voorbeeld: Searching with offsets
<?php
$foo = "0123456789a123456789b123456789c";
// Looking for '0' from the 0th byte (from the beginning)
var_dump(strrpos($foo, '0', 0));
// Looking for '0' from the 1st byte (after byte "0")
var_dump(strrpos($foo, '0', 1));
// Looking for '7' from the 21th byte (after byte 20)
var_dump(strrpos($foo, '7', 20));
// Looking for '7' from the 29th byte (after byte 28)
var_dump(strrpos($foo, '7', 28));
// Looking for '7' right to left from the 5th byte from the end
var_dump(strrpos($foo, '7', -5));
// Looking for 'c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, 'c', -2));
// Looking for '9c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, '9c', -2));
?>
int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)
strpos``stripos``strripos``strrchr``substr