# strtr

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

strtr — Convierte caracteres o reemplaza substrings

### Descripción

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

Si se dan tres argumentos, esta función devuelve una copia de `str`, donde todas las apariciones de cada carácter (byte simple) en `from` han sido convertidas al carácter correspondiente en `to`, es decir, todas las apariciones de `$from[$n]` han sido reemplazadas con `$to[$n]`, donde `$n` es un índice válido en ambos argumentos.

Si `from` y `to` tienen distinta logitud, se ignoran los caracteres extra del string más largo. La longitud de `str` será la misma que la del valor devuelto.

Si se dan dos argumentos, el segundo debería ser un array en la forma `array('from' => 'to', ...)`. El valor devuelto es un string donde todas las apariciones de las claves del array han sido reemplazadas por los valores correspondientes. Las claves más largas se probarán primero. Una vez un substring ha sido reemplazado, su nuevo valor no se buscará de nuevo.

En este caso, las claves y los valores pueden tener cualquier longitud, siempre que no haya claves vacías; además, la longitud del valor devuelto podría diferir de la de `str`. Sin embargo, esta función será la más eficiente cuando todas las claves tienen el mismo tamaño.

### Parámetros

`string`

  El string a convertir.

`from`

  El string a convertir a `to`.

`to`

  El string que reemplaza a `from`.

`replace_pairs`

  El parámetro `replace_pairs` se podría usar en lugar de `to` y `from`, en cuyo caso sería un array en la forma `array('from' => 'to', ...)`.

### Valores devueltos

Devuelve el string convertido.

Si `replace_pairs` contiene una clave que es un string vacío (`""`), devolverá `false`. Si `str` no es un escalar, no será convertido a un string, se emitirá una advertencia y devolverá `null`.

### Ejemplos

Ejemplo #1 Ejemplo de strtr()

`<?php
//De esta forma, strtr() hace una conversión byte a byte
//Por lo tanto, aquí se asume una codificación de un solo byte:
$addr = strtr($addr, "äåö", "aao");
?>`

El siguiente ejemplo muestra el comportamiento de strtr() cuando se llama con sólo dos argumentos. Observe la preferencia de los reemplazos (`"h"` no se toma porque hay coincidencias más largas) y cómo el texto remplazado no se busca de nuevo.

Ejemplo #2 Ejemplo de strtr() con dos argumentos

`<?php
$conv = array("h" => "-", "hola" => "hey", "hey" => "hola");
echo strtr("hey, dije hola", $conv);
?>`

El resultado del ejemplo sería:

    hola, dije hey

Los dos modos de comportamiento son muy diferentes. Con tres argumentos, strtr() reemplazará bytes; con dos, podría reemplazar substrings más largos.

Ejemplo #3 Comparación del comportamiento de strtr()

`<?php
echo strtr("baab", "ab", "01"),"\n";
$conv = array("ab" => "01");
echo strtr("baab", $conv);
?>`

El resultado del ejemplo sería:

    1001
    ba01

### Ver también

- str_replace() - Reemplaza todas las apariciones del string buscado con el string de reemplazo
- preg_replace() - Realiza una búsqueda y sustitución de una expresión regular