Avatar ·

Como substituir apenas a primeira ocorrência de uma substring em PHP? (str_replace para a primeira correspondência)

Olá a todos! Estou escrevendo em PHP e me deparei com um problema inesperado. Tenho uma string na qual preciso substituir apenas a primeira ocorrência de uma determinada substring, deixando todas as outras intactas. Aqui está um exemplo. Suponha que eu tenha um código HTML ou apenas texto: ```php $text = "Maçã, banana, maçã, laranja, maçã"; $search = "maçã"; $replace = "pera"; ``` Eu quero que o resultado seja: "Maçã, banana, pera, laranja, maçã" — ou seja, substituída apenas a segunda ocorrência (a primeira considerando case, mas isso não importa). Ou, se eu quiser substituir exatamente a primeira ocorrência, para que fique "pera, banana, maçã, laranja, maçã". O problema é que a função padrão `str_replace()` substitui TODAS as ocorrências. Tentei `str_replace($search, $replace, $text)`, mas ela substitui cada "maçã" por "pera", e eu preciso apenas de uma. Sei que existe `preg_replace()`, mas talvez haja uma solução mais simples sem expressões regulares? Ou como usar `preg_replace()` corretamente com limitador?