# strtr

(PHP 4, PHP 5, PHP 7)

strtr — 转换指定字符

### 说明

strtr ( string `$str` , string `$from` , string `$to` ) : string
strtr ( string `$str` , array `$replace_pairs` ) : string

该函数返回 `str` 的一个副本，并将在 `from` 中指定的字符转换为 `to` 中相应的字符。 比如， $from[$n]中每次的出现都会被替换为 $to[$n]，其中 $n 是两个参数都有效的位移(offset)。

如果 `from` 与 `to` 长度不相等，那么多余的字符部分将被忽略。 `str` 的长度将会和返回的值一样。

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.

### 参数

`str`

  待转换的字符串。

`from`

  字符串中与将要被转换的目的字符 `to` 相对应的源字符。

`to`

  字符串中与将要被转换的字符 `from` 相对应的目的字符。

`replace_pairs`

  参数 `replace_pairs` 可以用来取代 `to` 和 `from` 参数，因为它是以 array('from' => 'to', ...) 格式出现的数组。

### 返回值

返回转换后的字符串。

如果 `replace_pairs` 中包含一个空字符串（""）键，那么将返回 `FALSE`。 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() 范例

    <?php
    $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() 范例

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

以上例程会输出：

    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

    <?php
    echo strtr("baab", "ab", "01"),"\n";

    $trans = array("ab" => "01");
    echo strtr("baab", $trans);
    ?>

以上例程会输出：

    1001
    ba01

### 参见

- str_replace() - 子字符串替换
- preg_replace() - 执行一个正则表达式的搜索和替换