Заменяет символы или подстроки

# strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — Заменяет символы или подстроки

### Описание

function strtr(string `$string`, string `$from`, string `$to`): string

Альтернативная сигнатура (не поддерживается с именованными аргументами):

function strtr(string `$string`, array `$replace_pairs`): string

При передаче трёх аргументов функция возвращает копию строки `string`, в которой заменила вхождения каждого однобайтового символа строки `from` на символ строки `to` с тем же индексом: каждое вхождение символа `$from[$n]` заменяется символом `$to[$n]`, где `$n` — допустимое смещение строки в обоих аргументах.

При несовпадении длины строк `from` и `to` «лишние» символы в более длинной строке игнорируются. Функция вернёт строку той же длины, что и у аргумента `string`.

При передаче двух аргументов во втором передают значение с типом array в формате `array('from' => 'to', ...)`. Функция вернёт строку, в которой заменит вхождения ключей массива значениями. Самые длинные ключи обрабатываются первыми. После замены новое значение подстроки больше не участвует в поиске.

Функция принимает ключи и значения произвольной длины, при условии что массив не содержит пустых ключей; при этом длина возвращаемого значения после замены иногда не совпадает с длиной исходной строки `string`, но функция работает эффективнее с ключами одинаковой длины.

### Список параметров

`string`

  Строка (string), в которой требуется заменить символы или подстроки.

`from`

  Строка (string), которую заменит значение `to`.

`to`

  Строка (string), которая заменяет значение `from`.

`replace_pairs`

  Параметр `replace_pairs` указывают вместо параметров `to` и `from`. В аргументе передают массив (array) в форме `array('from' => 'to', ...)`.

  Функция игнорирует элементы массива `replace_pairs` с ключами в виде пустой строки (string) (`""`), а с PHP 8.0.0 выдаёт ошибку уровня `E_WARNING`.

### Возвращаемые значения

Функция возвращает преобразованную строку (string).

### Примеры

Пример #1 Пример замены символов функцией strtr()

    <?php

    $addr = "The river å";

    // В этой форме функция strtr() выполняет побайтовую замену символов.
    // Поэтому здесь подразумевается однобайтовая кодировка:
    $addr = strtr($addr, "äåö", "aao");
    echo $addr, PHP_EOL;

    ?>

Следующий пример показывает поведение функции strtr() при вызове только с двумя аргументами. Обратите внимание на приоритет замен — символ `"h"` не участвует в поиске, поскольку массив содержит более длинные совпадения, — и как после замены новый текст больше не участвует в поиске.

Пример #2 Пример замены символов или подстрок функцией strtr() при вызове с двумя аргументами

    <?php

    $trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
    echo strtr("hi all, I said hello", $trans);

    ?>

Результат выполнения приведённого примера:

    hello all, I said hi

Эти два режима поведения значительно различаются. При вызове с тремя аргументами функция strtr() заменяет байты, а при вызове с двумя заменяются и более длинные подстроки.

Пример #3 Сравнение поведения функции strtr()

    <?php

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

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

    ?>

Результат выполнения приведённого примера:

    1001
    ba01

### Смотрите также

- str_replace() - Заменяет вхождения строки поиска строкой замены
- preg_replace() - Выполняет поиск и замену по регулярному выражению

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open