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 cusubstr, nu cumb_substr.
Comenzi înrudite
mb_ereg_search_init / mb_ereg_search / mb_ereg_search_regs: Pregătește un text pentru căutări repetate cu mb_ereg_search, mb_ereg_search_regs și celelalte funcții din familie.preg_match_all: Găsește toate potrivirile unei expresii regulate într-un text și le pune într-un tablou.