strtr în PHP

Înlocuiește caractere sau texte după o listă de perechi, fără să înlocuiască de două ori același loc.

Sintaxă
strtr(string $string, array|string $from, ?string $to = null): string

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.