PHP: Função para procurar várias palavras em uma string

fevereiro 28th, 2008 por Diogo Dourado (XiS) Leave a reply »

Bom, deu pra entender? ou entendeu sem dar? ;)

O meu problema era o seguinte, tenho um sistema de cadastro público mas alguns engraçadinhos gostavam de postar coisas bobas do tipo odeio fulano, ciclano é chato, etc. Então tinha que filtrar essa string, so que a função do PHP strpos só nos dá a opção de encontrar apenas uma palavra. Solução? Criei uma array, depurei chegando cada uma e pronto, se encontrar umas das palavras da array ele me retorna 1, não encontrou retorna 0.

Bom, a função esta abaixo para quem quiser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Função para procura várias palavras em uma string
function procpalavras ($frase, $palavras, $resultado = 0) {
      foreach ( $palavras as $key => $value ) {
      $pos = strpos($frase, $value);
      if ($pos !== false) { $resultado = 1; break; }
      }
  return $resultado;
}

// Exemplo 1 - Nenhuma palavra encontrada, retorna zero
$frase = "eu tenho uma galinha que se chamava merilu";
$palavras = array ("coelho","cavalo","formiga","cachorro","gato");
echo "Resultado: " . procpalavras($frase, $palavras) . "<br />";

// Exemplo 2 - Uma ou mais palavra encontrada, retorna um
$frase = "eu tenho um coelho que se chamava zé";
$palavras = array ("coelho","cavalo","formiga","cachorro","gato");
echo "Resultado: " . procpalavras($frase, $palavras) . "<br />";

Gostou? Comenta… Não gostou? Comenta também…

Advertisement

4 comments

  1. Dario disse:

    Parece-me interecante, ainda nao tive tempo de experimenta-la
    mas tbm estive tentando fazer algo do genro pro meu Web-site(ainda em dznvlvimento).
    Assim k tiver resultados mostrovos.

  2. Beleza Dario,

    depois manda o link ae! :) Se tiver alguma dúvida ou precisar de algo.. pode contar comigo!

  3. o,eu queria saber como procurar palhavas na uol,alguém sabe como?

  4. Moises Coffani disse:

    Kra, ótima matéria, eu usei este script para descobrir o browser do usuario e a partir dai fazer determinada coisa, fiz algumas poucas adaptações para poder fazer o que eu queria, apesar de ter isto com javascript prefiro fazer com php no meu caso se enquadrou melhor, para quem quizer aki vai como ficou o script.

    // Função para procura várias palavras em uma string
    function procpalavras ($frase, $palavras, $resultado = 0) {
    foreach ( $palavras as $key => $value ) {
    $pos = strpos($frase, $value);
    if ($pos !== false) { $resultado = 1; break; }
    }
    return $value;
    }

    $palavras = array (“Chrome”,”Firefox”,”MSIE”);
    $nav = getenv(“HTTP_USER_AGENT”);
    echo “Resultado: ” . procpalavras($nav, $palavras) . “”;

    Vlw um abraço..

Deixe uma resposta