(PHP 4, PHP 5)
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().
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.
Esta función devuelve un string o un array con los valores sustituidos.
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. |
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.