# strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — Remplace des caractères dans une chaîne

### Description

strtr(string `$string`, string `$from`, string `$to`): string

Signature alternative (non supporté avec les arguments nommés) :

strtr(string `$string`, array `$replace_pairs`): string

Si trois arguments sont utilisés, strtr() retourne la chaîne `string` après avoir remplacé chaque caractère (de un octet) du paramètre `from` par son équivalent dans le paramètre `to`, chaque occurence de `$from[$n]` est remplacée par `$to[$n]`, où `$n` est une valeur valide pour chaque argument.

Si `from` et `to` sont de tailles différentes, les caractères en trop dans l'un ou l'autre seront ignorés. La taille de `string` sera la même que celle des valeurs retournées.

Si seuls deux arguments sont utilisés, le deuxième doit être un array de la forme `array('from' => 'to', ...)`. La donnée retournée est une string dans laquelle toutes les occurrences des clés du tableau ont été remplacées par les valeurs correspondantes. Les clés les plus longues seront d'abord utilisées. Une fois une sous-chaine remplacée, sa nouvelle valeur ne sera plus recherchée.

Dans ce cas, les clés et les valeurs peuvent avoir n'importe quelle taille, en supposant qu'il n'y a pas de clé vide; aussi, la taille de la valeur retournée peut différer de celle de `string`. Cependant, cette fonction sera la plus efficace lorsque toutes les clés ont la même taille.

### Liste de paramètres

`string`

  La chaîne à traiter.

`from`

  Les caractères de départ.

`to`

  Les caractères de remplacement.

`replace_pairs`

  Le paramètre `replace_pairs` peut être utilisé à la place de `to` et `from` et dans ce cas, ce sera un tableau sous la forme `array('from' => 'to', ...)`.

  Si `replace_pairs` contient une clé qui est une string vide (`""`), l'élément est ignoré ; à partir de PHP 8.0.0 une `E_WARNING` est levé dans ce cas.

### Valeurs de retour

Retourne la chaîne de caractères modifiée.

### Exemples

Exemple #1 Exemple avec strtr()

`<?php
$addr = "The river å";
// Ici, strtr() remplace octet par octet, nous supposons
// donc ici des encodages sur un seul octet:
$addr = strtr($addr, "äåö", "aao");
echo $addr, PHP_EOL;
?>`

L'exemple suivant montre l'utilisation de strtr() avec deux arguments. Notez la préférence des remplacements (`h` n'est pas utilisé car il y a des correspondances plus longues) et comment le texte remplacé n'est pas réutilisé par la suite.

Exemple #2 Exemple avec strtr() et 2 arguments

`<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>`

L'exemple ci-dessus va afficher :

    hello all, I said hi

Les deux comportements sont différents. Avec trois arguments, strtr() remplacera les octets; avec deux, elle peut remplacer des sous-chaines plus longues.

Exemple #3 Comparaison de comportement de strtr()

`<?php
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>`

L'exemple ci-dessus va afficher :

    1001
    ba01

### Voir aussi

- str_replace() - Remplace toutes les occurrences dans une chaîne
- preg_replace() - Rechercher et remplacer par expression rationnelle standard