(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strpos — Find position of first occurrence of string in a string
$haystack,$needle,$offset = 0,$encoding = null
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.
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.
offsetThe search offset in characters. If it is not specified, 0 is used. A negative offset counts from the end of the string.
encodingDer Parameter encoding
legt die Zeichenkodierung fest. Wird er nicht übergeben, so wird die interne
Zeichenkodierung genutzt.
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.
If offset is greater than the length of
haystack, a
ValueError will be thrown.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
needle akzeptiert nun eine leere Zeichenkette.
|
| 8.0.0 |
encoding ist nun nullable (akzeptiert den
null-Wert).
|
| 7.1.0 |
Support for negative offsets has been added.
|
Beispiel #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 "🐘"
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
int(3) int(2)