substr_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_replaceSubstitui o texto dentro de uma parte de uma string

Descrição

substr_replace(
    array|string $string,
    array|string $replace,
    array|int $offset,
    array|int|null $length = null
): string|array

substr_replace() substitui uma cópia de string delimitada pelos parâmetros offset e (opcionalmente) length com a string informada em replace.

Parâmetros

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.

Valor Retornado

A string de resultado é retornada. Se string for um array, então um array será retornado.

Registro de Alterações

Versão Descrição
8.0.0 length agora pode ser nulo.

Exemplos

Example #1 Exemplo de substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Example #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

Notas

Note: Esta função é compatível com dados binários.

Veja Também