1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Encontrar string dentro de string [php]

Discussão em 'Web Development' iniciada por toblesu, 21 de Junho de 2008. (Respostas: 11; Visualizações: 27850)

  1. toblesu

    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.
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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: 21 de Junho de 2008
  3. toblesu

    toblesu Power Member

    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....
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Acho que não compensa usar o explode.
    Qual é a tua versão do PHP?
     
  5. toblesu

    toblesu Power Member

    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: 21 de Junho de 2008
  6. QuickFire

    QuickFire What is folding?

    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.
     
  7. toblesu

    toblesu Power Member

    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)


    :)
     
  8. _lamy_

    _lamy_ Power Member

    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: 21 de Junho de 2008
  9. toblesu

    toblesu Power Member

    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....
     
  10. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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
     
  11. toblesu

    toblesu Power Member

    merci!! :P

    com este ultimo código... já dá os resultados que pretendo!!!

    obrigado!!
     
  12. hostmake

    hostmake Power Member

    Eu pessoalmente sou adepto de um str_replace, para poupar trabalho.
     

Partilhar esta Página