strtr
Translate characters or replace substrings
&reftitle.description;
stringstrtr
stringstr
stringfrom
stringto
stringstrtr
stringstr
arrayreplace_pairs
If given three arguments, this function returns a copy of
str where all occurrences of each (single-byte)
character in from have been translated to the
corresponding character in to, i.e., every
occurrence of $from[$n] has been replaced with
$to[$n], where $n is a valid
offset in both arguments.
If from and to have
different lengths, the extra characters in the longer of the two
are ignored. The length of str will be the same as
the return value's.
If given two arguments, the second should be an array in the
form array('from' => 'to', ...). The return value is
a string where all the occurrences of the array keys have been
replaced by the corresponding values. The longest keys will be tried first.
Once a substring has been replaced, its new value will not be searched
again.
In this case, the keys and the values may have any length, provided that
there is no empty key; additionaly, the length of the return value may
differ from that of str.
However, this function will be the most efficient when all the keys have the
same size.
&reftitle.parameters;
str
The string being translated.
from
The string being translated to to.
to
The string replacing from.
replace_pairs
The replace_pairs parameter may be used instead of
to and from, in which case it's an
array in the form array('from' => 'to', ...).
&reftitle.returnvalues;
Returns the translated string.
If replace_pairs contains a key which
is an empty string (""),
&false; will be returned.
&reftitle.examples;
strtr example
]]>
The next example shows the behavior of strtr when
called with only two arguments. Note the preference of the replacements
("h" is not picked because there are longer matches)
and how replaced text was not searched again.
strtr example with two arguments
"-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
]]>
&example.outputs;
The two modes of behavior are substantially different. With three arguments,
strtr will replace bytes; with two, it may replace
longer substrings.
strtr behavior comparison
"01");
echo strtr("baab", $trans);
?>
]]>
&example.outputs;
&reftitle.seealso;
str_replace
preg_replace