Ce face strtr
strtr are două forme. Cu trei parametri text, înlocuiește caracter cu caracter: primul caracter din $from devine primul din $to și așa mai departe. Cu un tablou ["caută" => "înlocuiește"], înlocuiește texte întregi.
Forma cu tablou încearcă întâi potrivirile cele mai lungi și nu mai modifică textul deja înlocuit. Din acest motiv, strtr poate schimba între ele două valori, lucru pe care str_replace nu îl poate face.
Forma caracter cu caracter lucrează pe octeți, deci nu merge cu diacritice. Pentru diacritice folosește forma cu tablou.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul original. |
$from |
Caracterele de înlocuit sau un tablou de perechi caută => înlocuiește. |
$to |
Doar la forma cu text: caracterele puse în loc. |
Ce returnează
Textul nou.
Exemple
Exemplul 1: Eliminarea diacriticelor (forma cu tablou)
<?php
$fara = ["ă" => "a", "â" => "a", "î" => "i", "ș" => "s", "ț" => "t",
"Ă" => "A", "Â" => "A", "Î" => "I", "Ș" => "S", "Ț" => "T"];
echo strtr("Știință și tehnică în Țara Românească", $fara);
Rezultat
Stiinta si tehnica in Tara Romaneasca
Exemplul 2: Schimbarea a două valori între ele
str_replace face înlocuirile pe rând, deci a doua înlocuire o strică pe prima. strtr le face pe toate deodată.
<?php
$text = "câine și pisică";
$schimb = ["câine" => "pisică", "pisică" => "câine"];
echo str_replace(array_keys($schimb), array_values($schimb), $text) . "\n";
echo strtr($text, $schimb);
Rezultat
câine și câine
pisică și câine
Exemplul 3: Înlocuire caracter cu caracter
<?php
echo strtr("2026-10-19", "-", "/");
Rezultat
2026/10/19
Greșeli frecvente
- Folosești forma caracter cu caracter pentru diacritice:
strtr($text, "ăș", "as"). Fiecare diacritică are 2 octeți și rezultatul iese stricat. Folosește forma cu tablou.
Comenzi înrudite
str_replace: Înlocuiește toate aparițiile unui text cu alt text.str_ireplace: Înlocuiește toate aparițiile unui text cu alt text, fără să țină cont de litere mari și mici.preg_replace: Înlocuiește toate potrivirile unei expresii regulate cu alt text.