strstr / stristr în PHP

Returnează partea dintr-un text care începe cu prima apariție a altui text (sau partea dinaintea ei).

Sintaxă
strstr(string $haystack, string $needle, bool $before_needle = false): string|false

Ce face strstr / stristr

strstr caută prima apariție a lui $needle și returnează tot ce urmează, inclusiv textul căutat. Cu $before_needle = true (PHP 5.3+) returnează partea dinaintea lui.

stristr face același lucru fără să țină cont de litere mari și mici. strchr este doar un alt nume pentru strstr.

Dacă vrei doar să afli dacă un text apare, str_contains este mai rapidă și mai clară.

Parametri

Parametru Descriere
$haystack Textul în care se caută.
$needle Textul căutat.
$before_needle Opțional. true returnează partea dinaintea textului găsit.

Ce returnează

Bucata de text sau false dacă $needle nu este găsit.

Exemple

Exemplul 1: Domeniul și utilizatorul dintr-un email

<?php
$email = "ana.popescu@exemplu.ro";

echo strstr($email, "@") . "\n";
echo strstr($email, "@", true);

Rezultat

@exemplu.ro
ana.popescu

Exemplul 2: Fără majuscule, cu stristr

<?php
$adresa = "Strada Lăpușneanu nr. 12, IAȘI";

var_dump(strstr($adresa, "nr."));
var_dump(stristr($adresa, "NR."));
var_dump(strstr($adresa, "Cluj"));

Rezultat

string(13) "nr. 12, IAȘI"
string(13) "nr. 12, IAȘI"
bool(false)

Greșeli frecvente

  • Uiți că rezultatul include și textul căutat: strstr("ana@exemplu.ro", "@") dă @exemplu.ro, nu exemplu.ro.

Comenzi înrudite

  • strrchr: Returnează partea dintr-un text care începe cu ultima apariție a unui caracter.
  • strpos: Găsește poziția primei apariții a unui text în alt text.
  • explode: Împarte un text în bucăți după un separator și le pune într-un tablou.
  • str_contains: Verifică dacă un text conține alt text. Returnează true sau false.