mb_ereg_search_pos / mb_ereg_search_getpos / mb_ereg_search_setpos în PHP

Găsește poziția următoarei potriviri dintr-o căutare mb_ereg_search și citește sau mută punctul de căutare.

Sintaxă
mb_ereg_search_pos(?string $pattern = null, ?string $options = null): array|false

Ce face mb_ereg_search_pos / mb_ereg_search_getpos / mb_ereg_search_setpos

mb_ereg_search_pos caută următoarea potrivire în textul pregătit cu mb_ereg_search_init și returnează un tablou [poziție, lungime], ambele în octeți.

mb_ereg_search_getpos returnează poziția (în octeți) de la care va continua următoarea căutare, iar mb_ereg_search_setpos o schimbă, de exemplu ca să reiei căutarea de la început.

Parametri

Parametru Descriere
$pattern Opțional. Expresia regulată, dacă nu a fost dată la inițializare.
$options Opțional. Opțiunile căutării.
$offset Doar la mb_ereg_search_setpos: noua poziție, în octeți.

Ce returnează

mb_ereg_search_pos: [poziție, lungime] sau false. mb_ereg_search_getpos: poziția. mb_ereg_search_setpos: true sau false.

Exemple

Exemplul 1: Pozițiile cuvintelor și întoarcerea la început

Pozițiile sunt în octeți: „Ștefan” are 7 octeți, deși are 6 litere.

<?php
mb_ereg_search_init("Ștefan și Ana", '\w+');

while ($p = mb_ereg_search_pos()) {
    echo "poziția " . $p[0] . ", lungimea " . $p[1] . ", următoarea căutare de la " . mb_ereg_search_getpos() . "\n";
}

mb_ereg_search_setpos(0);
print_r(mb_ereg_search_regs());

Rezultat

poziția 0, lungimea 7, următoarea căutare de la 7
poziția 8, lungimea 3, următoarea căutare de la 11
poziția 12, lungimea 3, următoarea căutare de la 15
Array
(
    [0] => Ștefan
)

Greșeli frecvente

  • Folosești pozițiile cu mb_substr. Sunt în octeți, deci se potrivesc cu substr, nu cu mb_substr.

Comenzi înrudite