(PHP 4, PHP 5, PHP 7)
str_replace — Reemplaza todas las apariciones del string buscado con el string de reemplazo
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().
Si search
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.
Esta función devuelve un string o un array con los valores sustituidos.
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;
?>
Nota: Esta función es segura binariamente.
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.