strtr
(PHP 4, PHP 5)
strtr — Remplace des caractères dans une chaîne
Description
$str
, string $from
, string $to
)$str
, array $replace_pairs
)
Si trois arguments sont utilisés, strtr() retourne la chaîne
str
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 str
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 str
. Cependant, cette fonction sera la plus efficace lorsque toutes
les clés ont la même taille.
Liste de paramètres
-
str
-
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 deto
etfrom
et dans ce cas, ce sera un tableau sous la forme array('from' => 'to', ...).
Valeurs de retour
Retourne la chaîne de caractères modifiée.
Si replace_pairs
contient une clé vide
(""), FALSE
sera retourné. Si le paramètre
str
n'est pas un scalaire, alors il ne sera
pas transtypé en une chaîne de caractères, une alerte sera émise,
et la valeur NULL
sera retournée.
Exemples
Exemple #1 Exemple avec strtr()
<?php
// Ici, strtr() remplace octet par octet, nous supposons
// donc ici des encodages dur un seul octet:
$addr = strtr($addr, "äåö", "aao");
?>
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);
?>
<?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