mb_strpos

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

mb_strposBusca la posición de la primera ocurrencia de un string en otro string

Descripción

mb_strpos(
    string $haystack,
    string $needle,
    int $offset = 0,
    string $encoding = mb_internal_encoding()
): int

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

Realiza una operación strpos() segura multibyte basada en el número de caracteres. La posición del primer carácter es 0, la posición del segundo carácter es 1, etc.

Parámetros

haystack

El string a comprobar.

needle

El string a buscar en haystack. A diferencia de strpos(), los valores numéricos no se aplican como el valor ordinal de un carácter.

offset

El índice de búsqueda. Si no se especifica se usará 0.

encoding

El parámetro encoding es la codificación de caracteres. Si es omitido, será usado el valor de la codificación de caracteres interna.

Valores devueltos

Devuelve la posición numéricia de la primera ocurrencia de needle en el string haystack. Si no se encuentra needle, devuelve false.

Ver también

  • mb_internal_encoding() - Establece/obtiene la codificación de caracteres interna
  • strpos() - Encuentra la posición de la primera ocurrencia de un substring en un string

add a note add a note

User Contributed Notes 3 notes

up
1
stestagg at talk21 dot com
17 years ago
It appears that the $offset value is a character count not a byte count.  (This may seem obvious but it isn't explicitly stated)
up
-26
stestagg at talk21 dot com
17 years ago
a sample mb_str_replace function:

function mb_str_replace($haystack, $search,$replace, $offset=0,$encoding='auto'){
    $len_sch=mb_strlen($search,$encoding);
    $len_rep=mb_strlen($replace,$encoding);
   
    while (($offset=mb_strpos($haystack,$search,$offset,$encoding))!==false){
        $haystack=mb_substr($haystack,0,$offset,$encoding)
            .$replace
            .mb_substr($haystack,$offset+$len_sch,1000,$encoding);
        $offset=$offset+$len_rep;
        if ($offset>mb_strlen($haystack,$encoding))break;
    }
    return $haystack;
}
up
-53
stestagg at talk21 dot com
17 years ago
sorry, my previous post had an error.  replace the 1000 with strlen($haystack) to handle strings longer than 1000 chars.

btw. This is an issue with the mbstring functions.  you can't specify the $encoding without specifying a $length, thus this reduces the functionality of mb_substr compared to substr
To Top