W3docs

strripos()

A função strripos() do PHP localiza a última ocorrência de uma substring sem distinção de maiúsculas e minúsculas dentro de uma string.

Introdução

A função strripos() no PHP encontra a posição da última ocorrência de uma substring dentro de outra string, ignorando maiúsculas e minúsculas. O nome se decompõe em str (string) + r (reverso, ou seja, busca da direita) + i (sem distinção de maiúsculas) + pos (posição).

É o par insensível a maiúsculas de strrpos(): strripos("Hello", "L") e strripos("Hello", "l") retornam a mesma posição, enquanto strrpos() trataria L e l como caracteres diferentes.

Este capítulo aborda a sintaxe, o valor de retorno (e o problema do false que você deve tratar), o parâmetro opcional $offset — incluindo offsets negativos — e como strripos() se relaciona com as outras funções de busca em strings.

Sintaxe

strripos(string $haystack, string $needle, int $offset = 0): int|false
ParâmetroDescrição
$haystackA string em que se deseja pesquisar.
$needleA substring a ser pesquisada.
$offsetOpcional. Onde iniciar a pesquisa. Um valor positivo ignora os primeiros $offset caracteres; um valor negativo faz a busca parar tantos caracteres antes do final da string. Padrão é 0.

Valor de retorno: o índice baseado em zero da última ocorrência correspondente, ou false se $needle não for encontrado.

Sempre compare com !==

strripos() retorna 0 quando a correspondência está no início da string, e 0 é falsy no PHP. Uma verificação simples como if (strripos(...)) trataria erroneamente uma correspondência na posição zero como "não encontrado". Sempre compare com false usando o operador estrito !==:

<?php

$haystack = "Apple pie";
$pos = strripos($haystack, "a"); // matches "A" at index 0

if ($pos !== false) {
  echo "Found at index $pos"; // Found at index 0
} else {
  echo "Not found";
}

Exemplo básico

php— editable, runs on the server

Há dois caracteres o/O em Hello World — um em Hello (índice 4) e outro em World (índice 7). Como strripos() retorna a última correspondência, a saída é:

Found last occurrence of 'o' in 'Hello World' at position 7

Correspondência sem distinção de maiúsculas

A pesquisa trata letras maiúsculas e minúsculas como iguais, portanto a capitalização de $needle não importa:

<?php

$string = "Hello World, hello PHP";

echo strripos($string, "hello"), "\n"; // 13 — matches "hello" in "hello PHP"
echo strripos($string, "HELLO"), "\n"; // 13 — same match, case ignored

O último hello/HELLO/Hello na string começa no índice 13, independentemente de como você capitaliza o needle.

Usando o parâmetro $offset

Um offset positivo inicia a pesquisa após os primeiros $offset caracteres:

<?php

$string = "Hello World";

echo strripos($string, "o", 5), "\n"; // 7 — only the "o" in "World" is considered

Um offset negativo faz a pesquisa parar tantos caracteres antes do final da string, o que é útil para encontrar a última correspondência em tudo exceto uma parte final:

<?php

$string = "abcabc";

echo strripos($string, "b", -2), "\n"; // 4 — last "b" within the truncated search window

Funções relacionadas

Escolha a função de pesquisa correta para cada situação:

  • strrpos() — igual a strripos(), mas com distinção de maiúsculas.
  • stripos() — encontra a primeira ocorrência sem distinção de maiúsculas.
  • strpos() — encontra a primeira ocorrência com distinção de maiúsculas.
  • strstr() — retorna o restante da string a partir da primeira correspondência, em vez de uma posição.
  • substr() — extrai parte de uma string após você conhecer a posição.
FunçãoDireçãoDiferencia maiúsculas?
strpos()primeira correspondênciasim
stripos()primeira correspondêncianão
strrpos()última correspondênciasim
strripos()última correspondêncianão

Conclusão

strripos() localiza a última ocorrência sem distinção de maiúsculas de uma substring e retorna seu índice, ou false quando não há correspondência. Lembre-se de testar o resultado com !== para que uma correspondência na posição zero não seja confundida com uma falha, e use $offset (positivo ou negativo) quando precisar limitar a janela de pesquisa. Quando você precisar da primeira correspondência, ou quando a diferenciação de maiúsculas for importante, use uma das funções relacionadas acima.

Prática

Prática
O que a função PHP strripos() faz?
O que a função PHP strripos() faz?
Was this page helpful?