Funciones de strings
PHP Manual

str_replace

(PHP 4, PHP 5)

str_replaceReemplaza todas las apariciones del string buscado con el string de reemplazo

Descripción

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Esta función devuelve un string o un array con todas las apariciones de search en subject reemplazadas con el valor dado de replace.

Si no se necesitan reglas complicadas de reemplazo (como expresiones regulares), se puede utilizar siempre esta función en lugar de preg_replace().

Parámetros

Sisearch y replace son arrays, entonces str_replace() toma un valor de cada array y lo utiliza para buscar y reemplazar en subject. Si replace tiene menos valores que search, entonces un string vacío es usado para el resto de los valores de reemplazo. Si search es un array y replace es un string, entonces este string de reemplazo es usado para cada valor de search. Sin embargo, lo contrario no tendría sentido.

Si search o replace son arrays, sus elementos son procesados del primero al último.

search

El valor a ser buscado, también conocida como la aguja. Un array puede ser utilizado para designar varias agujas.

replace

El valor de reemplazo que sustituye los valores encontrados de search. Un array puede ser utilizado para designar reemplazos múltiples.

subject

El string o array sobre el que se busca y se sustituye, también conocido como el pajar.

Si subject es un array, entonces la búsqueda y reemplazo se realiza con cada entrada de subject y el valor devuelto también es un array.

count

Si es pasado, con este se establece el número de reemplazos realizados.

Valores devueltos

Esta función devuelve un string o un array con los valores sustituidos.

Historial de cambios

Versión Descripción
5.0.0 Fue agregado el parámetro count.
4.3.3 Cambió el comportamiento de esta función. En versiones anteriores un error existía cuando se usaban arrays en ambos parámetros search y replace, el cual causaba que índices vacíos en search fueran saltados sin avanzar el puntero interno sobre el array replace. Esto ha sido corregido en PHP 4.3.3, así que cualquier script que se basara en este error, debe remover los valores vacíos de búsqueda antes de llamar ésta función con el fin de imitar el comportamiento original.
4.0.5 La mayoría de los parámetros ahora pueden ser un array.

Ejemplos

Ejemplo #1 Ejemplos básicos de str_replace()

<?php
// Produce: <body text='black'>
$bodytag str_replace("%body%""black""<body text='%body%'>");

// Produce: Hll Wrld f PHP
$vowels = array("a""e""i""o""u""A""E""I""O""U");
$onlyconsonants str_replace($vowels"""Hello World of PHP");

// Produce: You should eat pizza, beer, and ice cream every day
$phrase  "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits""vegetables""fiber");
$yummy   = array("pizza""beer""ice cream");

$newphrase str_replace($healthy$yummy$phrase);

// Produce: 2
$str str_replace("ll""""good golly miss molly!"$count);
echo 
$count;
?>

Ejemplo #2 Ejemplos de trampas potenciales con str_replace()

<?php
// Orden del reemplazo
$str     "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n""\n""\r");
$replace '<br />';

// Procesa primero \r\n así no es convertido dos veces.
$newstr str_replace($order$replace$str);

// La salida es F debido a que A es reemplazada con B, entonces B es reemplazada con C, y así sucesivamente...
// Finalmente E se reemplaza con F, debido a los reemplazos de izquierda a derecha.
$search  = array('A''B''C''D''E');
$replace = array('B''C''D''E''F');
$subject 'A';
echo 
str_replace($search$replace$subject);

// La salida es: apearpearle pear
// Por la misma razón mencionada arriba
$letters = array('a''p');
$fruit   = array('apple''pear');
$text    'a p';
$output  str_replace($letters$fruit$text);
echo 
$output;
?>

Notas

Nota: Esta función es segura binariamente.

Precaución

Trampa del orden de reemplazo

Debido a que str_replace() reemplaza de izquierda a derecha, podría sustituir a un valor previamente insertado al hacer sustituciones múltiples. Ver también los ejemplos de este documento.

Nota:

Esta función es sensible a mayúsculas y minúsculas. Utilice Use str_ireplace() para reemplazos insensibles a mayúsculas y minúsculas.

Ver también


Funciones de strings
PHP Manual