Como substituir parte de uma string no PHP?
Substituir partes de uma string é uma operação comum na programação PHP. Podemos realizar essa tarefa de diversas formas, dependendo da necessidade específica. As funções mais utilizadas são str_replace()
, substr_replace()
e preg_replace()
.
Substituindo texto com str_replace()
A função str_replace()
substitui todas as ocorrências de uma palavra ou caractere dentro de uma string:
<?php
$texto = "O PHP é uma linguagem incrível";
$novoTexto = str_replace("PHP", "JavaScript", $texto);
echo $novoTexto;
?>
Saída:
O JavaScript é uma linguagem incrível
Aqui, PHP
foi substituído por JavaScript
em toda a string.
Substituindo parte da string com substr_replace()
Se precisarmos substituir um trecho específico de uma string, podemos usar substr_replace()
:
<?php
$texto = "Aprender PHP é essencial";
$novoTexto = substr_replace($texto, "JavaScript", 9, 3);
echo $novoTexto;
?>
Aqui, o trecho começando no índice 9
por 3
caracteres foi substituído por JavaScript
.
Substituindo usando expressões regulares com preg_replace()
Se precisarmos substituir padrões complexos, preg_replace()
é a melhor opção:
<?php
$texto = "Contato: email@exemplo.com";
$novoTexto = preg_replace("/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/i", "[email protegido]", $texto);
echo $novoTexto;
?>
Aqui, qualquer e-mail presente na string será substituído por [email protegido]
.
Quando usar str_replace(), substr_replace() ou preg_replace() no PHP?
A substituição de strings no PHP permite desde pequenas alterações de texto até manipulações avançadas com expressões regulares. Dependendo do cenário, str_replace()
é ideal para trocas diretas, substr_replace()
para mudanças em posições específicas e preg_replace()
para padrões mais elaborados. Escolher a função correta melhora a eficiência e clareza do código.
Algumas aplicações:
- Correção e reformatação de textos dinâmicos
- Remoção de informações sensíveis antes de exibição
- Filtragem e sanitização de dados de entrada
- Geração de URLs amigáveis a partir de strings
Dicas para quem está começando
- Use
str_replace()
para trocas simples e diretas dentro de uma string. - Para substituir apenas em uma posição específica, prefira
substr_replace()
. - Se precisar substituir padrões complexos,
preg_replace()
é a melhor opção. - Teste suas expressões regulares no site https://regex101.com antes de aplicá-las.
- Evite substituições desnecessárias para otimizar o desempenho do código.
Contribuições de Daniel Moreira