Encontrar string dentro de string [php]

toblesu

Power Member
Boas,

não estou a conseguir encontrar uma função que me permita encontrar uma string dentro de uma outra string. já pesquisei no site do php mas as funções de string que la encontrei (ou nao as entendo) não satisfazem o que pretendo.

O que pretendia era algo do género:

string a encontrar: "João Matias"
na string: "Fornecededor - João Matias"



Se me puderem ajudar,

Obrigado.
 
http://php.net/substr
http://php.net/strpos
Podes precisar de juntar os dois :P


edit - ok, li melhor o que disseste, e não as compreendeste.
PHP:
$procurar = "João Matias";
$procurarem = "Fornecedor - João Matias";
if(strpos($procurarem, $procurar)===true) echo "O nome foi encontrado"; else echo "Não encontrado.";
$procurar = "João MATIAS";
if(strpos($procurarem, $procurar)===true) echo "O nome foi encontrado"; else echo "Não encontrado.";
if(stripos($procurarem, $procurar)===true) echo "O nome foi encontrado"; else echo "Não encontrado."; // case-insensitive

Acho que é qualquer coisa assim.
 
Última edição:
já tentei o stripos mas acho k a minha versão do php nao a reconhece..... de qualquer das formas vou tentar usar a dica que destes....

entretanto surgiu-m a ideia do explode()


brigado na mesma..vou testar....
 
o stripos decididamente nao funciona....

o outro diz k nao encontra nada.... mas existe!! vou rever o código k me indicaste....

quanto à versão, tenho o php5.2.3...
 
Última edição:
Explode() é chato...

Olha que stripos não existe, vê se escreveste bem no código :) A função já existe à muito tempo, deves tê-la de certeza.
 
pois com o explode tenho que fazer mais linhas de código..... torna-se pouco fiável...



tens razão, não é stripos, tem dois 'rr' -> strripos (plo menos pelo que vi no site do php)


:)
 
Por acaso existem as duas: stripos e strripos!! :O
Eu só conhecia e usava a primeira, stripos!! fui ver ao site php.net e não percebi quais eram as diferenças!! Lolol


@toblesu: se isso continuar a não dar, podes tar a ter problemas ao fazer comparação com o === true. Exprimenta antes stripos( ... ) !== false.
Nota: não me perguntes qual é a diferença, edit: mas a funcao stripos retorna a posicao onde encontra a ocorrencia, ou o boolean falso caso não encontre. Como tal é preferivel testar se é diferente de falso! :P
 
Última edição:
apesar de estar referenciada no php, ela nao é assumida.....

tentei com strrpos também nao dá....

e os resultados da strpos também nao coindem.....


vou mesmo testar o explode....
 
Erro meu. Claro que é "!== false" em vez de "=== true". A resposta ou é um número ou é o booleano FALSE. Logo, se for qualquer coisa DIFERENTE do booleano FALSE, a string foi encontrada.

Fica assim:
PHP:
$procurar = "João Matias";
$procurarem = "Fornecedor - João Matias";
if(strpos($procurarem, $procurar)!==false) 
 echo "O nome foi encontrado"; 
else 
 echo "Não encontrado.";
echo "<br>";
$procurar = "João MATIAS";
if(strpos($procurarem, $procurar)!==false) 
 echo "O nome foi encontrado"; 
else 
 echo "Não encontrado.";
echo "<br>";
if(stripos($procurarem, $procurar)!==false) 
 echo "O nome foi encontrado"; 
else 
 echo "Não encontrado."; // case-insensitive  
echo "<br>";

O stripos é a versão case-insensitive do strpos. Nem sequer sabia da existência do strripos :P
 
Back
Topo