Traduz caracteres ou substitui substrings

# strtr

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

strtr — Traduz caracteres ou substitui substrings

### Descrição

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

Assinatura alternativa (não suportada com argumentos nomeados):

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

Se for chamada com três argumentos, esta função retorna uma cópia de `string` onde todas as ocorrências de cada caractere (de um byte) em `from` tenham sido traduzidas para o caractere correspondente em `to`, isto é, cada ocorrência de `$from[$n]` tenha sido substituída por `$to[$n]`, onde `$n` é um deslocamento válido em ambos os argumentos.

Se `from` e `to` tiverem comprimentos diferentes, os caracteres adicionais no argumento mais longo são ignorados. O comprimento de `string` será o mesmo do valor de retorno.

Se for chamada com dois argumentos, o segundo deve ser um array na forma `array('from' => 'to', ...)`. O valor de retorno é uma string onde todas as ocorrências das chaves do array tenham sido substituídas pelos valores correspondentes. As chaves mais longas são substituídas primeiro. Assim que ums substring é substituída, seu novo valor não será pesquisado novamente.

Neste caso, as chaves e os valores podem ter qualquer comprimento, desde que não haja chave vazia; adicionalmente, o comprimento do valor de retorno pode ser diferente do comprimento de `string`. Entretanto, esta função será mais eficiente quando todas as chaves têm o mesmo tamanho.

### Parâmetros

`string`

  A string a ser traduzida.

`from`

  A string que deverá ser traduzida para `to`.

`to`

  A string que substituirá `from`.

`replace_pairs`

  O parâmetro `replace_pairs` pode ser usado no lugar de `to` e `from`, como um array na forma `array('from' => 'to', ...)`.

  Se `replace_pairs` contiver uma chave que seja uma string vazia (`""`), o elemento será ignorado; a partir do PHP 8.0.0, um alerta `E_WARNING` é emitido neste caso.

### Valor Retornado

Retorna a string traduzida.

### Exemplos

Exemplo #1 Exemplo de strtr()

    <?php
    $addr = "The river å";

    // Nesta forma, strtr() faz uma tradução byte a byte.
    // Portanto, aqui é assumida uma codificação de um byte:
    $addr = strtr($addr, "äåö", "aao");
    echo $addr, PHP_EOL;
    ?>

O exemplo a seguir mostra o comportamento de strtr() quando chamada com apenas dois argumentos. Observe a preferência das substituições (`"h"` não é capturado pois existem correspondências mais longas) e como o texto já substituído não é pesquisado novamente.

Exemplo #2 Exemplo de strtr() com dois argumentos

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

O exemplo acima produzirá:

    hello all, I said hi

Os dois modos de comportamento são substancialmente diferentes. Com três argumentos, strtr() irá substituir bytes; com dois, ela pode substituir substrings mais longas.

Exemplo #3 Comparação de comportamentos de strtr()

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

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

O exemplo acima produzirá:

    1001
    ba01

### Veja Também

- str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição
- preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui

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