Ce face preg_replace
preg_replace este varianta mai puternică a lui str_replace: în loc de un text fix, caută după un șablon. În textul de înlocuire poți folosi $1, $2… pentru grupurile din paranteze și $0 pentru întreaga potrivire.
Cu tablouri de șabloane și înlocuiri, face mai multe înlocuiri pe rând. $limit limitează numărul de înlocuiri pentru fiecare șablon, iar $count primește numărul total de înlocuiri.
Parametri
| Parametru | Descriere |
|---|---|
$pattern |
Expresia regulată (sau un tablou de expresii). |
$replacement |
Textul pus în loc. Poate folosi $1, $2, $0. |
$subject |
Textul (sau tabloul de texte) în care se face înlocuirea. |
$limit |
Opțional. Numărul maxim de înlocuiri. Implicit fără limită (-1). |
$count |
Opțional. Variabilă în care se salvează numărul de înlocuiri. |
Ce returnează
Textul nou sau null la eroare.
Exemple
Exemplul 1: Spații multiple reduse la unul singur
<?php
$text = " Prea multe spații aici ";
var_dump(trim(preg_replace('/\s+/', " ", $text)));
Rezultat
string(23) "Prea multe spații aici"
Exemplul 2: Reordonarea unei date cu grupuri
<?php
echo preg_replace('/(\d{4})-(\d{2})-(\d{2})/', '$3.$2.$1', "Livrare: 2026-10-19");
Rezultat
Livrare: 19.10.2026
Exemplul 3: Slug pentru URL
<?php
$titlu = "Învață PHP: 10 funcții utile!";
$slug = strtr($titlu, ["ă" => "a", "â" => "a", "î" => "i", "ș" => "s", "ț" => "t", "Î" => "I"]);
$slug = strtolower($slug);
$slug = preg_replace('/[^a-z0-9]+/', "-", $slug);
echo trim($slug, "-");
Rezultat
invata-php-10-functii-utile
Greșeli frecvente
- Scrii înlocuirea între ghilimele duble:
"$1". PHP încearcă să interpreteze$1ca variabilă. Folosește ghilimele simple:'$1'. - Folosești
preg_replacepentru o înlocuire de text fix.str_replaceeste mai rapidă și mai ușor de citit.
Comenzi înrudite
preg_replace_callback: Înlocuiește potrivirile unei expresii regulate cu rezultatul unei funcții scrise de tine.str_replace: Înlocuiește toate aparițiile unui text cu alt text.preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.strtr: Înlocuiește caractere sau texte după o listă de perechi, fără să înlocuiască de două ori același loc.