HOWTO · PHP

Reemplazar Cadena en PHP

Este artículo introduce cómo reemplazar parte de una cadena en PHP. Incluye la función str_replace().

En esta página

Reemplazar parte de una cadena de PHP es sencillo con str_replace(). Busca texto literal y devuelve el asunto con las coincidencias reemplazadas. Úsala para transformaciones de texto habituales; no valida ni sanea datos de entrada no confiables.

Usa str_replace() para reemplazar texto en una cadena de PHP

La función acepta el texto que se busca, su reemplazo y la cadena o el array donde se buscará. La coincidencia es literal: por ejemplo, el signo de dólar es simplemente otro carácter que se puede buscar. En una cadena de PHP entre comillas dobles, escribe \"$\" con cuidado porque $ inicia la interpolación de variables; una cadena entre comillas simples, como '$', expresa directamente el signo de dólar literal.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

<?php
$subject = 'Hello World!';
echo str_replace('World', 'PHP', $subject) . PHP_EOL;
Hello PHP!

PHP_EOL termina la línea mostrada con el separador de línea de la plataforma.

Para reemplazar un signo de dólar, pasa '$' como valor de búsqueda y una cadena como 'USD ' como reemplazo. La función no requiere ningún escape especial para $; su valor depende de las reglas de comillas de la cadena de PHP.

Entiende los argumentos, el valor devuelto y el recuento de reemplazos

$search, $replace y $subject son los argumentos obligatorios. $search es el texto literal que se busca, $replace es el texto que ocupará su lugar y $subject es la cadena o el array de cadenas que se procesará. Si el asunto es una cadena, la función devuelve la cadena modificada; si es un array, devuelve un array de cadenas modificadas. Si no hay coincidencias, el asunto permanece sin cambios.

El cuarto argumento, $count, es opcional y se pasa por referencia. PHP lo establece con el número total de reemplazos realizados en el asunto; si necesitas ese recuento, inicializa una variable antes de pasarla. El recuento es un valor que devuelve la llamada, no un límite para la cantidad de reemplazos.

Por ejemplo, str_replace('cat', 'dog', 'cat and cat', $count) devuelve dog and dog y establece $count en 2. Esto ilustra la sintaxis; no se presenta como una salida obtenida al ejecutar el código.

Reemplaza varios valores con arrays

Pasa arrays para $search y $replace a fin de aplicar reemplazos correspondientes en una sola llamada. Cada valor de búsqueda se empareja con el reemplazo que ocupa la misma posición. Por ejemplo, esta expresión cambia ambas palabras de la oración:

str_replace(['PHP', 'great'], ['Python', 'useful'], 'PHP is great')

Devuelve Python is useful. PHP aplica los pares del array en orden, por lo que un reemplazo puede introducir texto que coincida con un valor de búsqueda posterior. Si quieres que cada decisión dependa únicamente del texto original, evita los pares que se solapan o usa un analizador diseñado para ese formato de entrada.

Gestiona las coincidencias que distinguen entre mayúsculas y minúsculas y las que no

str_replace() distingue entre mayúsculas y minúsculas: buscar 'world' no encuentra 'World'. Usa str_ireplace() cuando quieras que la búsqueda ignore las mayúsculas. Por ejemplo, str_ireplace('world', 'PHP', 'Hello World!') devuelve Hello PHP!. Elige la función que ignora las mayúsculas solo cuando ese comportamiento sea el deseado, ya que también puede reemplazar coincidencias con distintas combinaciones de mayúsculas y minúsculas.