mb_strpos
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strpos — Find position of first occurrence of string in a string
Description
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
haystack
-
The string from which to get the position of the first occurrence
of needle.
needle
-
The string to find in haystack. In contrast
with strpos(), numeric values are not applied
as the ordinal value of a character.
offset
-
The search offset in characters. If it is not specified, 0 is used.
A negative offset counts from the end of the string.
encoding
-
The encoding
parameter is the character encoding. If it is omitted or null, the internal character
encoding value will be used.
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
As of PHP 8.0.0, a ValueError is thrown if
encoding is an invalid encoding.
Prior to PHP 8.0.0, an E_WARNING was emitted instead.
Examples
Example #1 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:
See Also
- mb_strrpos() - Find position of last occurrence of a string in a string
- mb_stripos() - Finds position of first occurrence of a string within another, case insensitive
- mb_internal_encoding() - Set/Get internal character encoding
- strpos() - Find the position of the first occurrence of a substring in a string