mb_strpos
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
Find position of first occurrence of string in a string
Description
Finds position of the first occurrence of needle in the haystack string.
Performs a multi-byte safe strpos() operation based on number of characters. The first character's position is 0, the second character position is 1, and so on.
Parameters
haystackThe string from which to get the position of the first occurrence of
needle.needleThe string to find in
haystack. In contrast withstrpos(), numeric values are not applied as the ordinal value of a character.offsetThe search offset in characters. If it is not specified, 0 is used. A negative offset counts from the end of the string.
encodingParameter
Return Values
Returns the character position (not byte position) of the first occurrence of needle in the haystack string, counting from 0. Returns false if needle is not found.
Errors/Exceptions
- If
offsetis greater than the length ofhaystack, aValueErrorwill be thrown.
Changelog
| Version | Description |
|---|---|
| 7.1.0 | Support for negative offsets has been added. |
Examples
mb_strpos() returns a character offset, not a byte offset
<?php
// "🐘" is 4 bytes but 1 character; "é" is 2 bytes but 1 character
$str = "🐘H🐘é";
var_dump(mb_strpos($str, "é")); // character 3, not byte 9
var_dump(mb_strpos($str, "🐘", 1)); // character 2, skipping the first "🐘"
?>The above example will output:
int(3)
int(2)