Ir para conteúdo
Fórum Script Brasil
  • 0

busca destacada (highlight search)


carlosmandra

Pergunta

Pessoal,

to usando um script pra destacar os termos de uma busca em um bd. O script simplesmente não funciona e eu não consegui encontrar o motivo. Eis o código:

$words = $_POST['pesquisa'];
$text = $row_rsRegulamento['conteudo'];


function highlight_this($text, $words, $the_place) { 
    $words = trim($words); 
    $wordsArray = explode(' ', $words); 
    foreach($wordsArray as $word) { 
        if(strlen(trim($word)) != 0) 
            $text = str_ireplace($word, "<span class=\"sublinharTermos\">".strtoupper($word)."</span>", $text, $count); 
    } 
    //added to show how many keywords were found
    echo "<br><div class=\"emphasis\">A search for <strong>" . $words. "</strong> found <strong>" . $count . "</strong> matches within the " . $the_place. ".</div><br>";
    
    //end script modification
    return $text;
}

Alguém tem idéia do que pode ser? Preciso usar alguma outra coisa?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
to usando um script pra destacar os termos de uma busca em um bd. O script simplesmente não funciona e eu não consegui encontrar o motivo.

Kara, muito código para pouca coisa...

Tenta assim:

$words    = $_POST[ "pesquisa" ];
$text    = "Essa é a frase que estará no seu banco de dados";

echo preg_replace( sprintf( "/\\b(%s)\\b/" , preg_replace( "/\\s/" , "|" , $words ) ) , '<span class="sublinharTermos">$1</span>' , $text );

// Uma pesquisa pelas palavras: frase e seu retornaria o seguinte:
// Essa é a <span class="sublinharTermos">frase</span> que estará no <span class="sublinharTermos">seu</span> banco de dados

[]'s

J. Neto

Link para o comentário
Compartilhar em outros sites

  • 0
Neto,

perfeito! Não entendo muito de preg e eregi_replace. Pode me ajudar a substituir a preg_replace, para que eu ache os valores sem case sensitive? (se procuro "festival", ele só sublinha se a palavra tiver em minúscula, deixando "Festival" de lado)

Elementar meu karo,

O preg_match e o preg_replace utilizam na área da expressão regular, um / no início e um / no final:

/regexp/
para que você faça a expressão não ser sensível a caixa basta colocar um i depois da barra final:
/regexp/i

Abraços...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...