Função strpos
A função strpos retorna a posição
da primeira ocorrência de uma substring em outra string
ou false, se a substring não for encontrada.
O primeiro parâmetro da função recebe a string
na qual a busca é realizada, o segundo parâmetro
- a substring que deve ser procurada.
Por padrão, a função busca desde o início da string até a primeira correspondência. O início da busca pode ser ajustado com um terceiro parâmetro opcional - se for especificado, a busca começará não do início da string, mas a partir do local indicado.
Há também a função stripos, que
faz a mesma coisa, mas sem diferenciar maiúsculas de minúsculas.
Sintaxe
strpos(string $haystack, string $needle, int $offset = 0): int|false
Exemplo
Neste exemplo, a função retornará a posição do primeiro
caractere 'c'. Ele ocupa a posição 2,
pois a contagem começa em 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Resultado da execução do código:
2
Exemplo
Neste exemplo, o terceiro parâmetro é especificado e,
portanto, a busca começará a partir da terceira posição.
Neste caso, a função encontrará o segundo caractere
'c' e exibirá sua posição - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Resultado da execução do código:
8
Exemplo
Se a substring não for encontrada - a função
retornará false. Se a string estiver
no início, a função retornará 0.
Isso pode ser um problema ao fazer comparações
usando a forma curta de condição:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Resultado da execução do código (não é o que esperávamos):
'---'
Exemplo
Vamos fazer a verificação correta para o início da string:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Resultado da execução do código:
'+++'
Veja também
-
a função
strrpos,
que retorna a posição da última ocorrência de uma substring -
a função
str_contains,
que verifica a ocorrência de um caractere em uma string -
a função
str_starts_with,
que verifica o início de uma string -
a função
str_ends_with,
que verifica o final de uma string -
a função
array_search,
que realiza uma busca em um array