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. Test strtr online.
string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )
PHP Documentation by the PHP Documentation Group
(PHP 4, PHP 5, PHP 7)
strtr — Translate characters or replace substrings
$to) : string
$replace_pairs) : string
If given three arguments, this function returns a copy of
str where all occurrences of each (single-byte)
from have been translated to the
corresponding character in
to, i.e., every
$from[$n] has been replaced with
$n is a valid
offset in both arguments.
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
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
In this case, the keys and the values may have any length, provided that
there is no empty key; additionally, the length of the return value may
differ from that of
However, this function will be the most efficient when all the keys have the
Returns the translated string.
replace_pairs contains a key which
is an empty string (
FALSE will be returned. If the
str is not a scalar
then it is not typecasted into a string, instead a warning is raised and
NULL is returned.
Example #1 strtr() example
//In this form, strtr() does byte-by-byte translation
//Therefore, we are assuming a single-byte encoding here:
$addr = strtr($addr, "äåö", "aao");
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.
Example #2 strtr() example with two arguments
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
The above example will output:
hello all, I said hi
The two modes of behavior are substantially different. With three arguments, strtr() will replace bytes; with two, it may replace longer substrings.
Example #3 strtr() behavior comparison
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
The above example will output:
Copyright © 1997 - 2016 by the PHP Documentation Group. This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution 3.0 License or later. A copy of the Creative Commons Attribution 3.0 license is distributed with this manual. The latest version is presently available at » http://creativecommons.org/licenses/by/3.0/.