mb_strpos()

mb_strpos() — Find position of first occurrence of string in a string.

Built-in function of PHP 8.5. The manual lists it as available in PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

Signature

mb_strpos(string $haystack, string $needle, int $offset = 0, ?string $encoding = null): int|false

Parameters

ParameterTypeWhat it takes
$haystackstringThe string from which to get the position of the first occurrence of needle.
$needlestringThe string to find in haystack. In contrast with strpos(), numeric values are not applied as the ordinal value of a character.
$offsetintThe search offset in characters. If it is not specified, 0 is used. A negative offset counts from the end of the string.
$encoding?stringThe encoding parameter is the character encoding. If it is omitted or null, the internal character encoding value will be used.

Return value

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.

Example

A runnable snippet:

// "🐘" 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 "🐘"

Output:

int(3) int(2)

Changelog

VersionChange
8.0.0needle now accepts an empty string.
8.0.0encoding is nullable now.
8.0.0Now throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned.
7.1.0Support for negative offsets has been added.

See also

mb_strrpos(), mb_stripos(), mb_internal_encoding(), strpos()

All PHP 8.5 built-in functions

Reference card built from the PHP manual page mb_strpos() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.