strrchr în PHP

Returnează partea dintr-un text care începe cu ultima apariție a unui caracter.

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

Ce face strrchr

strrchr caută ultima apariție a unui caracter și returnează tot ce urmează, inclusiv acel caracter. Este varianta „de la final” a lui strstr.

Dacă $needle are mai multe caractere, se folosește doar primul. Parametrul $before_needle a apărut în PHP 8.3 și returnează partea dinaintea ultimei apariții.

Parametri

Parametru Descriere
$haystack Textul în care se caută.
$needle Caracterul căutat (doar primul caracter contează).
$before_needle Opțional, PHP 8.3+. true returnează partea dinainte.

Ce returnează

Bucata de text sau false dacă caracterul nu apare.

Exemple

Exemplul 1: Extensia și ultimul director dintr-o cale

<?php
echo strrchr("arhiva.2026.zip", ".") . "\n";
echo substr(strrchr("/var/www/dexblog/index.php", "/"), 1);

Rezultat

.zip
index.php

Exemplul 2: Ultimul cuvânt dintr-un nume

<?php
$nume = "Ana Maria Popescu";

echo trim(strrchr($nume, " "));

Rezultat

Popescu

Greșeli frecvente

  • Dai un text de mai multe caractere ca $needle și te aștepți să fie căutat întreg. strrchr folosește doar primul caracter. Pentru texte întregi folosește strrpos și substr.

Comenzi înrudite

  • strstr / stristr: Returnează partea dintr-un text care începe cu prima apariție a altui text (sau partea dinaintea ei).
  • strrpos / strripos: Găsește poziția ultimei apariții a unui text în alt text.
  • substr: Extrage o bucată dintr-un text, pornind de la o anumită poziție.