(PHP 4, PHP 5, PHP 7, PHP 8)
substr_replace — Substitui o texto dentro de uma parte de uma string
$string
,$replace
,$offset
,$length
= null
substr_replace() substitui uma cópia de string
delimitada pelos parâmetros offset
e (opcionalmente) length
com a string informada em replace
.
string
A string de entrada.
Um array de strings pode ser fornecido, e neste caso as substituições irão ocorrer em um string de cada vez. Neste caso, os parâmetros replace
, offset
e length
podem ser fornecidos tanto como valores escalares a ser aplicados a um string de entrada de cada vez, quanto como arrays, neste caso o elemento correspondente do array será usado por cada string de entrada.
replace
A string substituta.
offset
Se offset
for não-negativo, a substituição começará na posição offset
da string
.
Se offset
for negativo, a substituição começará a partir da posição offset
contada a partir do final da string
.
length
Se fornecido e positivo, ele representa o comprimento da porção de string
que deve ser substituída. Se negativo, ele representa o número de caracteres do final de string
onde parar a substituição. Se ele não for fornecido, o padrão será até strlen( string
); isto é, parar a substituição no final de string
. Obviamente, se length
for zero então esta função irá ter efeito de inserir replace
em string
na posição fornecida em offset
.
A string de resultado é retornada. Se string
for um array, então um array será retornado.
Versão | Descrição |
---|---|
8.0.0 | length agora pode ser nulo. |
Exemplo #1 Exemplo de substr_replace()
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
Exemplo #2 Usando substr_replace() para substituir múltiplas strings de uma só vez
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// Um caso simples: substituir XXX em cada string com YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// Um caso mais complicado onde cada substituição é diferente.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// Substituir um número diferente de caracteres a cada vez.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>
O exemplo acima produzirá:
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Nota: Esta função é compatível com dados binários.