Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Garbin

[Resolvido] Função strpos

Recommended Posts

Buenas galera,

 

Minha dúvida... tenho o seguinte código:

 

$str1 = "1;2;3;4;5;6;11;12";

if(strpos($str1, "12") !== false){ 
echo "Encontrou!";
}else{
echo "Não Encontrou!";
}

 

 

Ao usar a função strpos quero encontrar apenas o 12, porém se eu botar pra ele pegar o 12 ele acha o 2 tbm porque esta na mesma string.

 

Tem como eu limitar ele apegar apenas tal caracter?

Ex.: pegar o 12 e não o 2.

 

Obrigado pela ajuda desde já.

 

Bom acho que vou explodir isso e criar um array e usar a função "in_array". Acho que seria mais interessante.

 

O que me dizem?

 

Tópico Resolvido! :rolleyes:

 

Pode fechar vou usar in_array. Fica mais seguro dessa forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo uma pequena confusão.

 

Não é porque o 2 faz parte do número 12 que strpos() está retornando TRUE para ambos os números. É apenas uma coincidência.

 

Se você quiser explicitar a condição para haver o 12 e não haver o 2, strpos() não é o mais indicado.

 

Uma possibilidade que me ocorre agora é usar dois preg_match() com ER's que utilizam bordas:

 

if( preg_match( '/\b12\b/', $str1 ) != 0 && preg_match( '/\b2\b/', $str1 ) == 0 ){ 

   echo "Encontrou!";

} else{

   echo "Não Encontrou!";
}

Ou ainda, nesse caso especifico, explodir pelas pontos-e-vírgula e usar in_array().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, usei ele na inocência hehe.. ai depois fui ler no php.net a respeito e me deparrei com esse "meu erro".

 

Então troquei strpos() por in_array() após explodir a variavel. Deu certo.

 

Obrigado pela ajuda, pode fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.