Encontrando a última ocorrência de uma substring com strrpos() no PHP

A função strrpos() localiza a última ocorrência de uma substring dentro de uma string, sendo útil quando se precisa de uma busca reversa.

Como funciona a função strrpos() no PHP

A função strrpos() é similar à função strpos(), mas ao invés de localizar a primeira ocorrência de uma substring, ela localiza a última. Isso pode ser extremamente útil quando você precisa saber onde a última ocorrência de uma substring aparece em uma string. A sintaxe básica é:

$pos = strrpos($string, $substring);

Exemplo básico

Imagine que você tem a string 'Mundo, Mundo, Mundo!' e deseja encontrar a última ocorrência de 'Mundo'. Com strrpos(), isso seria feito assim:

$texto = 'Mundo, Mundo, Mundo!';
$pos = strrpos($texto, 'Mundo');
echo $pos; // Saída: 13

A função retorna 13, que é a posição da última ocorrência de 'Mundo' na string.

Caso de não encontrar a substring

Assim como strpos(), se a substring não for encontrada, strrpos() retorna false. Isso pode ser útil para garantir que a substring está presente na string antes de tentar manipulá-la. Exemplo:

$texto = 'Mundo, Mundo, Mundo!';
$pos = strrpos($texto, 'Universo');
if ($pos === false) {
    echo 'Substring não encontrada!';
} else {
    echo 'Última ocorrência encontrada na posição ' . $pos;
}

Neste caso, 'Universo' não está presente em 'Mundo, Mundo, Mundo!', então a função retorna false e o PHP exibe 'Substring não encontrada!'.

Sensibilidade a maiúsculas e minúsculas

A função strrpos() é sensível a maiúsculas e minúsculas. Se você quiser fazer uma busca que ignore a diferenciação entre maiúsculas e minúsculas, você pode usar strripos(). Exemplo:

$texto = 'Mundo, Mundo, Mundo!';
$pos = strripos($texto, 'mundo');
echo $pos; // Saída: 13

Neste caso, strripos() irá localizar a última ocorrência de 'mundo', ignorando as maiúsculas.

Trabalhando com índices negativos

Os índices negativos funcionam da mesma forma em strrpos() como em strpos(). Isso significa que você pode contar a partir do final da string para realizar a busca. Exemplo:

$texto = 'Mundo, Mundo, Mundo!';
$pos = strrpos($texto, 'Mundo', -6);
echo $pos; // Saída: 7

Aqui, começamos a busca 6 caracteres antes do final da string, encontrando a segunda ocorrência de 'Mundo'.

Casos de uso prático

A função strrpos() é útil quando você precisa encontrar a última ocorrência de uma substring em um texto. Isso pode ser muito útil em casos como a análise de logs, onde você pode querer localizar a última vez que uma ação ou evento ocorreu, ou quando você precisa dividir strings com base no último delimitador. Exemplo de uso:

$texto = 'https://meusite.com/algum/diretorio/arquivo';
$pos = strrpos($texto, '/');
$nome_arquivo = substr($texto, $pos + 1);
echo $nome_arquivo; // Saída: arquivo

Conclusão

A função strrpos() é extremamente útil para localizar a última ocorrência de uma substring dentro de uma string. Ela é bastante versátil e pode ser usada em diversos contextos onde a posição da última ocorrência é importante. Se precisar ignorar a diferenciação de maiúsculas e minúsculas, lembre-se de usar strripos().

Quando se trata de encontrar a última ocorrência de uma substring em PHP, strrpos() se torna uma ferramenta indispensável. Essa função é especialmente útil quando estamos trabalhando com logs, URLs, ou qualquer outro texto onde a posição da última ocorrência seja mais importante do que as anteriores. Usar índices negativos também permite uma flexibilidade adicional na manipulação de strings, garantindo que você possa procurar em partes específicas do texto, como o final.

Se você precisar de uma busca sem considerar maiúsculas e minúsculas, lembre-se de usar strripos() para garantir que sua busca seja realizada de forma insensível ao caso.

Algumas aplicações:

  • Encontrar a última ocorrência de uma palavra ou caractere em um texto.
  • Usar em casos de logs ou strings que exigem a localização da última ocorrência de um termo.
  • Manipular URLs para pegar a última parte do caminho ou nome de arquivo.
  • Dividir strings a partir do último delimitador encontrado, como em caminhos de diretórios ou textos formatados.

Dicas para quem está começando

  • Se você precisa encontrar a última ocorrência de um termo, strrpos() é a função ideal.
  • Lembre-se que a função é sensível a maiúsculas e minúsculas. Use strripos() se quiser fazer uma busca insensível ao caso.
  • Use índices negativos para procurar a partir do final da string.
  • Se precisar de todos os resultados, combine strrpos() com loops para capturar múltiplas ocorrências de um termo.

Contribuições de Ricardo Vasconcellos

Compartilhe este tutorial: strrpos()

Compartilhe este tutorial

Continue aprendendo:

strpos()

A função strpos() permite localizar a posição de uma substring dentro de uma string, retornando a posição onde a substring começa.

Tutorial anterior

strtolower()

A função strtolower() é usada para converter todas as letras de uma string para minúsculas no PHP.

Próximo tutorial