mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strpos — Busca la posición de la primera ocurrencia de un string en otro string

Descripción

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

Localiza la posición de la primera ocurrencia de needle en el string haystack.

Realiza una búsqueda de tipo strpos(), teniendo en cuenta los caracteres multioctetos. La posición de needle se cuenta desde el inicio de la cadena haystack: las posiciones comienzan en 0.

Parámetros

haystack

El string a partir del cual se obtiene la posición de la primera aparición de needle.

needle

La string a encontrar en el parámetro haystack. A diferencia de la función strpos(), los valores numéricos no se aplican como valor ordinal de un carácter.

offset

La posición de inicio de la búsqueda, en caracteres. Si se omite, se utilizará cero. Una posición negativa se cuenta desde el final de la string.

encoding

El parámetro encoding es la codificación de caracteres. Si se omite o es null, se utilizará el valor de la codificación de caracteres interna.

Valores devueltos

Devuelve la posición en caracteres (no en bytes) de la primera ocurrencia de needle en el string haystack, contando desde 0. Devuelve false si no se encuentra needle.

Errores/Excepciones

  • Si offset es mayor que la longitud de haystack, se lanzará un ValueError.

Historial de cambios

Versión Descripción
8.0.0 needle ahora acepta una cadena vacía.
8.0.0 encoding ahora acepta null.
7.1.0 Se añadió soporte para offsets negativos.

Ejemplos

Ejemplo #1 mb_strpos() devuelve una posición en caracteres, no en bytes

<?php
// "🐘" ocupa 4 bytes pero es 1 carácter; "é" ocupa 2 bytes pero es 1 carácter
$str = "🐘H🐘é";

var_dump(mb_strpos($str, "é"));  // carácter 3, no byte 9
var_dump(mb_strpos($str, "🐘", 1)); // carácter 2, se omite el primer "🐘"
?>

El ejemplo anterior mostrará:

int(3)
int(2)

Véase también

  • mb_strrpos() - Localiza la última ocurrencia de un carácter en una cadena
  • mb_stripos() - Encuentra la primera ocurrencia de una cadena en otra, sin tener en cuenta la casilla
  • mb_internal_encoding() - Lee/modifica la codificación interna
  • strpos() - Busca la posición de la primera ocurrencia en un string
+add a note

User Contributed Notes

There are no user contributed notes for this page.