(PHP 4, PHP 5, PHP 7, PHP 8)
strtr — Reemplaza caracteres en un string
Firma alternativa (no soportada con argumentos nombrados):
Si se utilizan tres argumentos, strtr() devuelve el string
string
después de haber reemplazado cada carácter (de un octeto)
del parámetro from
por su equivalente en el parámetro
to
, cada ocurrencia de $from[$n]
es
reemplazada por $to[$n]
, donde $n
es un valor
válido para cada argumento.
Si from
y to
son de
tamaños diferentes, los caracteres adicionales en uno u otro
serán ignorados. El tamaño de string
será el mismo que el de
los valores devueltos.
Si solo se utilizan dos argumentos, el segundo debe ser un array
de la forma array('from' => 'to', ...)
. El dato devuelto es
un string en el que todas las ocurrencias de las claves del array han
sido reemplazadas por los valores correspondientes. Las claves más largas serán utilizadas primero.
Una vez que una subcadena es reemplazada, su nuevo valor no será buscado nuevamente.
En este caso, las claves y los valores pueden tener cualquier tamaño, asumiendo
que no hay una clave vacía; así, el tamaño del valor devuelto puede diferir del de
string
. Sin embargo, esta función será más eficiente cuando todas
las claves tengan el mismo tamaño.
string
El string a procesar.
from
Los caracteres de origen.
to
Los caracteres de reemplazo.
replace_pairs
El parámetro replace_pairs
puede ser utilizado
en lugar de to
y from
y en este caso, será un array en la forma
array('from' => 'to', ...)
.
Si replace_pairs
contiene una clave que es un
string vacío (""
), el elemento es ignorado;
a partir de PHP 8.0.0 se genera una E_WARNING
en este caso.
Devuelve el string modificado.
Ejemplo #1 Ejemplo con strtr()
<?php
$addr = "The river å";
// Aquí, strtr() reemplaza octeto por octeto, por lo tanto
// se asume aquí codificaciones de un solo octeto:
$addr = strtr($addr, "äåö", "aao");
echo $addr, PHP_EOL;
?>
El siguiente ejemplo muestra el uso de strtr() con
dos argumentos. Observe la preferencia de los reemplazos (h
no
es utilizado porque hay coincidencias más largas) y cómo el texto
reemplazado no es reutilizado posteriormente.
Ejemplo #2 Ejemplo con strtr() y 2 argumentos
<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
El resultado del ejemplo sería:
hello all, I said hi
Los dos comportamientos son diferentes. Con tres argumentos, strtr() reemplazará los octetos; con dos, puede reemplazar subcadenas más largas.
Ejemplo #3 Comparación de comportamiento de strtr()
<?php
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
El resultado del ejemplo sería:
1001 ba01