跳转到主要内容

mb-strpos

mb_strpos

Find position of first occurrence of string in a string

ENTITY

int

false

mb_strpos

string

haystack

string

needle

int

offset

0

string

null

encoding

ENTITY

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.

ENTITY

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
ENTITY

ENTITY

Returns the character position (not byte position) of the first occurrence of needle in the haystack string, counting from 0. Returns ENTITY if needle is not found.

ENTITY

  • If offset is greater than the length of haystack, a ValueError will be thrown.

ENTITY

ENTITY

ENTITY ENTITY
7.1.0 Support for negative offsets has been added.

ENTITY

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

   

ENTITY

int(3)
int(2)

ENTITY

mb_strrpos, mb_stripos, mb_internal_encoding, strpos