Ce face mb_strstr / mb_stristr
mb_strstr este varianta multibyte a lui strstr: returnează tot ce urmează după prima apariție a lui $needle, inclusiv acesta, sau partea dinainte cu $before_needle = true.
mb_stristr face același lucru fără să țină cont de majuscule, inclusiv la diacritice (Ș și ș sunt egale). Pentru texte UTF-8 corecte, strstr dă de obicei același rezultat; diferența apare mai ales la căutarea fără majuscule.
Parametri
| Parametru | Descriere |
|---|---|
$haystack |
Textul în care se caută. |
$needle |
Textul căutat. |
$before_needle |
Opțional. true returnează partea dinainte. |
$encoding |
Opțional. Codarea textului. |
Ce returnează
Bucata de text sau false.
Exemple
Exemplul 1: Înainte și după un separator
<?php
$produs = "Țesătură — bumbac 100%";
echo mb_strstr($produs, " — ", true) . "\n";
echo mb_strstr($produs, " — ");
Rezultat
Țesătură
— bumbac 100%
Exemplul 2: Căutare fără majuscule, cu diacritice
<?php
$titlu = "Ghid: ȘCOALA de vară PHP";
var_dump(stristr($titlu, "școala"));
var_dump(mb_stristr($titlu, "școala"));
Rezultat
bool(false)
string(20) "ȘCOALA de vară PHP"
Greșeli frecvente
- Uiți că rezultatul include și textul căutat. Dacă vrei doar ce urmează, taie-l cu
mb_substr($rezultat, mb_strlen($needle)).
Comenzi înrudite
strstr / stristr: Returnează partea dintr-un text care începe cu prima apariție a altui text (sau partea dinaintea ei).mb_strrchr / mb_strrichr: Returnează partea unui text de la ultima apariție a unui subșir (sau dinaintea ei), corect pentru UTF-8.mb_strpos / mb_stripos: Găsește poziția unui text în alt text, numărată în caractere, nu în octeți.