Informational advisory: Session upload progress

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.

A partir de PHP 8.0.0, se lanza una ValueError si encoding es una codificación no válida. Antes de PHP 8.0.0, se emitía una advertencia E_WARNING en su lugar.

Historial de cambios

Versión Descripción
8.0.0 needle ahora acepta una cadena vacía.
8.0.0 encoding ahora acepta null.
8.0.0 Ahora lanza una ValueError si encoding es una codificación no válida. Anteriormente, se emitía una advertencia E_WARNING y se devolvía false.
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 distinguir mayúsculas de minúsculas
  • 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.
To Top