Pular para o conteúdo

PHP: Substituindo somente a primeira ocorrência de uma palavra na string

Dica publicada em PHP / Expressões Regulares
Fábio Berbert de Paula fabio
Hits: 21.376 Categoria: PHP Subcategoria: Expressões Regulares
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

PHP: Substituindo somente a primeira ocorrência de uma palavra na string

Essa dica é pra quem trabalha com PHP e precisa substituir somente a primeira ocorrência de uma palavra num string. Veja um exemplo:

<?
$paragrafo = "Agora você pode instalar o Big Linux ou a distro que preferir. Verifique se o CD do Linux já está no computador, ligue e faça dar o boot pelo CD do Linux.";
//substituir a primeira ocorrência da palavra Linux por <em>Linux</em>
$paragrafo = ereg_replace("Linux", "<em>Linux</em>", $paragrafo);
echo $paragrafo;
?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

A saída será:

Agora você pode instalar o Big <em>Linux</em> ou a distro que preferir. Verifique se o CD do <em>Linux</em> já está no computador, ligue e faça dar o boot pelo CD do <em>Linux</em>.

O ereg_replace() substitui TODAS as ocorrências da string. A solução para o problema é o uso da função preg_replace(). Para o exemplo acima funcionar, bastar substituir a ereg_replace() por:

$paragrafo = preg_replace("/Linux/", "<em>Linux</em>", $paragrafo, 1);

Espero ter ajudado!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Criando GIFs animadas pelo terminal GNU/Linux

Google Authenticator no terminal Linux

Como capturar prints de vídeos usando mplayer

Como extrair um print de um arquivo de vídeo

Falha ao conectar fone bluetooth (headset) no Debian [Resolvido]

Guia de Expressões Regulares

PHP - Como comparar duas strings case insensitive

Separar caracteres de uma string no PHP

Separar palavras de uma string no PHP

Utilizando o loop FOR em PHP

#1 Comentário enviado por leandromx em 28/10/2009 - 18:59h
Olá Fábio me diz uma coisa,
Se eu quiser mudar somente a seguda palavra linux como ficaria????
#2 Comentário enviado por fabio em 29/10/2009 - 10:43h
Olá Leandro,

Assim deve funcionar:

$paragrafo = preg_replace("/(Linux.*)(Linux)/", "$1<em>$2</em>", $paragrafo);

Um abraço.

Contribuir com comentário

Entre na sua conta para comentar.