STRTR(3) 1 STRTR(3)
strtr - Translate characters or replace substrings
SYNOPSIS
string strtr (string $str, string $from, string $to)
DESCRIPTION
string strtr (string $str, array $replace_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; additionally, 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.
PARAMETERS
o $str
- The string being translated.
o $from
- The string being translated to $to.
o $to
- The string replacing $from.
o $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',
...).
RETURN VALUES
Returns the translated string.
If $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 type-
casted into a string, instead a warning is raised and NULL is returned.
EXAMPLES
Example #1
strtr(3) example
<?php
//In this form, strtr() does byte-by-byte translation
//Therefore, we are assuming a single-byte encoding here:
$addr = strtr($addr, "aao", "aao");
?>
The next example shows the behavior of strtr(3) 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(3) example with two arguments
<?php
$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(3) will replace bytes; with two, it may replace longer
substrings.
Example #3
strtr(3) behavior comparison
<?php
echo strtr("baab", "ab", "01"),"
";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
The above example will output:
1001
ba01
SEE ALSO
str_replace(3), preg_replace(3).
PHP Documentation Group STRTR(3)