(PHP 4, PHP 5, PHP 7)
substr_replace — Reemplaza el texto dentro de una porción de un string
substr_replace() reemplaza una copia de
string
delimitada por los parámetros
start
y (opcionalmente)
length
con el string dado en
replacement
.
string
El string de entrada.
Un array de strings puede ser proporcionado, en el
caso de que las sustituciones ocurran, a su vez, en cada string. En este caso,
los parámetros replacement
, start
y length
pueden ser proporcionados ya sea como
valores escalares que serán aplicados a cada string de entrada, a su vez, o como
arrays, en cuyo caso el correspondiente elemento del array será
usado para cada string de entrada.
replacement
El string de reemplazo.
start
Si start
es positivo, el reemplazo
iniciará en el start
ésimo desplazamiento
dentro del string
.
Si start
es negativo, el reemplazo
iniciará en el start
ésimo caracter desde el
final del string
.
length
Si se da y es positivo, representa la longitud de la porción de
string
que se va a reemplazar. Si es
negativo, representa el número de caracteres desde el final del
string
en el cual se deja de sustituir. Si
no se da, entonces se usará por defecto strlen(
string
); es decir que la sustitución terminará en
el final de string
. Por supuesto, si
length
es cero, entonces esta función tendrá el
efecto de la inserción de replacement
dentro de
string
en el desplazamiento dado por
start
.
El string del resultado es devuelto. Si string
es un
array entonces un array es devuelto.
Ejemplo #1 Ejemplo desubstr_replace()
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
/* Estos dos ejemplos reemplazan todo $var por 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
/* Inserta 'bob' justo al comienzo de $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
/* Estos dos siguientes reemplazan 'MNRPQR' en $var por 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
/* Elimina 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
Ejemplo #2 Usando substr_replace() para reemplazar múltiples strings de una vez
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// Un caso simple: remplazar XXX en cada string con YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// Un caso más complicado donde cada remplazo es diferente.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// Remplaza un número diferente de caracteres cada vez.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>
El resultado del ejemplo sería:
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Nota: Esta función es segura binariamente.