(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.
stringEl 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.
replacementEl 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.