replace substring PHP

Sustituir un fragmento literal en PHP con str_replace

Reemplaza todas las apariciones de un texto literal y comprueba el contador de sustituciones.

Tipo: Guía práctica Lectura: 3 min Actualizado: 2026-11-03
Ejemplo visual para Reemplazar una subcadena en PHP sin romper el texto

Guía y comprobaciones

Reemplazo literal de todas las apariciones

str_replace busca un texto literal, distingue mayúsculas y no interpreta expresiones regulares. Devuelve el texto modificado; la cadena original permanece igual si no reasignas el resultado.

$original = 'ruta/vieja y ruta/vieja';
$nueva = str_replace('ruta/vieja', 'ruta/nueva', $original, $cambios);
echo $nueva, PHP_EOL; // ruta/nueva y ruta/nueva
echo $cambios, PHP_EOL; // 2
echo $original, PHP_EOL; // ruta/vieja y ruta/vieja

El contador permite diferenciar una transformación que encontró coincidencias de otra que recibió un formato inesperado. No garantiza que el nuevo texto sea correcto para otro lenguaje: una ruta, una etiqueta HTML y un documento JSON requieren reglas distintas.

Una sustitución o varias

Para reemplazar un fragmento en una posición conocida puedes utilizar substr_replace. Para reemplazar sólo la primera aparición literal, localiza la posición con strpos, comprueba !== false y sustituye la longitud exacta. Si la coincidencia está al principio, su posición será cero y no debe confundirse con un fallo.

$texto = 'rojo, rojo';
$pos = strpos($texto, 'rojo');
if ($pos !== false) {
    $texto = substr_replace($texto, 'azul', $pos, strlen('rojo'));
}
echo $texto, PHP_EOL; // azul, rojo

Texto, rutas y caracteres

Las funciones de longitud y posición anteriores trabajan con bytes. En el ejemplo, la longitud se calcula a partir del mismo fragmento encontrado, por lo que sustituye sus bytes completos. Si estás cortando por posiciones de caracteres en textos Unicode, elige las funciones multibyte adecuadas.

No modifiques un documento estructurado mediante reemplazos indiscriminados: cambiar una palabra en un JSON crudo puede alterar claves además de valores. Decodifica, cambia el campo previsto y vuelve a codificar. Para decidir entre sustitución literal y patrones, continúa con la comparación de funciones enlazada abajo.

Preguntas frecuentes

¿Sustituye sólo la primera coincidencia?

str_replace sustituye todas las apariciones. Para una posición o una primera coincidencia localizada, utiliza substr_replace con una comprobación estricta de la posición.

¿También cambia el original?

Devuelve el resultado. La variable original sólo cambia si guardas el resultado sobre ella.

Documentación oficial

Fuentes consultadas

Fuentes y referencias

Consulta referencias útiles para ampliar o contrastar esta guía.

R

Autora de la guia

Redacción de Línea de Código

Publicación independiente de programación y trámites digitales

Guías con ejemplos y referencias oficiales para aprender programación y preparar gestiones digitales. Las solicitudes se completan en el organismo responsable.

Actualizado: 2026-11-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.