W3docs

str_replace()

Artigo sobre a função PHP str_replace(), usada para substituir todas as ocorrências de uma string dentro de outra string.

A função PHP str_replace() substitui todas as ocorrências de uma string de busca por uma string de substituição. É útil para encontrar e trocar padrões específicos dentro de textos maiores. A seguir, abordamos a sintaxe, os principais recursos e exemplos de uso.

A função str_replace() é usada para substituir todas as ocorrências de uma string dentro de outra string. A sintaxe da função str_replace() é a seguinte:

A sintaxe PHP de str_replace()

str_replace($search, $replace, $subject, $count = null)

A função recebe três parâmetros obrigatórios e um opcional: $search, $replace, $subject e $count.

  • $search: A string, ou array de strings, a ser buscada.
  • $replace: A string, ou array de strings, a ser usada na substituição.
  • $subject: A string, ou array de strings, dentro da qual buscar.
  • $count (opcional): Uma variável passada por referência que recebe o número de substituições realizadas.

A função retorna o $subject modificado. A string original nunca é alterada diretamente, portanto é necessário capturar o valor de retorno. str_replace() é sensível a maiúsculas e minúsculas"World" e "world" são tratados como strings diferentes. Se precisar ignorar a capitalização, use str_ireplace().

Um exemplo básico

Esta é a forma mais simples de usar a função str_replace() — substituindo uma palavra por outra:

Exemplo de PHP str_replace()

php— editable, runs on the server

Neste exemplo, a variável string $string contém a frase "The quick brown fox jumps over the lazy dog." Substituímos a palavra "brown" por "red" passando "brown" como $search e "red" como $replace. A saída é:

The quick red fox jumps over the lazy dog.

Todas as ocorrências são substituídas — não apenas a primeira. Se a string de busca aparecer três vezes, todas as três serão substituídas em uma única chamada.

Substituindo múltiplas strings de uma vez

Quando $search e $replace são arrays, cada elemento de $search é substituído pelo elemento no mesmo índice em $replace. O quarto argumento opcional, $count, é passado por referência e recebe o número total de substituições:

Exemplo com arrays e $count

<?php
$search = ["brown", "fox"];
$replace = ["red", "bear"];
$subject = "The quick brown fox jumps over the lazy dog.";
$count = 0;
$result = str_replace($search, $replace, $subject, $count);
echo $result; // Output: The quick red bear jumps over the lazy dog.
echo "Replacements made: $count"; // Output: Replacements made: 2
?>

Se $replace for uma string única mas $search for um array, essa string única será usada para todas as correspondências:

<?php
$result = str_replace(["a", "e", "i"], "*", "education");
echo $result; // Output: *duc*t*on
?>

Um detalhe importante: substituições em cascata

As substituições por array são aplicadas em ordem, e cada uma é executada sobre o resultado da anterior. Isso significa que um valor recém-inserido pode ser correspondido novamente por um termo de busca posterior:

<?php
$count = 0;
$result = str_replace(["A", "B"], ["B", "C"], "A", $count);
echo $result;        // Output: C
echo "\n";
echo "Replacements: $count"; // Output: Replacements: 2
?>

Aqui "A" se torna "B" na primeira passagem, e então esse "B" se torna "C" na segunda passagem — portanto o resultado final é "C", com duas substituições contadas. Organize os pares de busca/substituição com cuidado para evitar isso, ou use strtr() quando precisar que cada par seja aplicado exatamente uma vez.

Quando usar str_replace()

  • Use str_replace() para buscas e substituições literais rápidas quando você conhece o texto exato.
  • Use str_ireplace() quando a correspondência deve ignorar maiúsculas e minúsculas.
  • Use substr_replace() para substituir uma parte de uma string por posição em vez de por conteúdo.
  • Use preg_replace() quando precisar de correspondência de padrões com expressões regulares.

A função str_replace() oferece uma forma direta e eficiente de pesquisar e substituir texto em PHP. Por funcionar com strings simples sem a sobrecarga de expressões regulares, é a ferramenta certa sempre que você estiver correspondendo texto literal e exato.

Prática

Prática
O que a função str_replace faz em PHP?
O que a função str_replace faz em PHP?
Was this page helpful?