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

Dúvida sobre como fazer busca, colocando palavra-chave em negrito


Rubiz Gardini

Pergunta

Olá pessoal, td bom?

Eu estou com uma dúvida atroz rsrsrsr.

Olha só, eu fiz um site que tem busca; até aí ok, não tem problema nenhum, a busca tá sendo realizada hoje e está perfeita.

O que acontece é que a cliente quer um trechinho do texto "em volta" da palavra-chave buscada, E a própria palavra em negrito...

ai, ai... aí é que o bicho pegou né... Se a palavra-chave estiver no início do texto, entre os 100 primeiros caracteres até que é "fácil", mas se estiver bem no meio de um número enorme de caracteres... ferrou...

Alguém tem idéia de como seria pegar umas 9 palavras antes e depois da palavra-chave, e colocar negrito só na palavra-chave?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Para colocar em negrito é fácil, é só dar um str_replace no que vier do banco, mandando substituir a palavra por ela mesma em negrito...

Quanto a pegar um pedaço antes e um depois, ai complica, pois você tem várias coisas pra levar em conta, por exemplo, na mesma frase por existir mais de uma ocorrência da palavra chave, etc...

Link para o comentário
Compartilhar em outros sites

  • 0

Exato...

a questão do str_replace é realmente simples, o que aconteceu q me deixou em dúvida é o seguinte:

Eu tenho uma variável, $text que tem toooooodo o texto inicial, os primeiros 100 caracteres. Até aí ok.

Aí faço assim:

<?
    $text = 'Lorem ipsum dollor sit amet';
    $text = str_replace($text, 'Lorem', '<b>Lorem</b>');
    echo $text;
?>
o $text que aparece é apena Lorem em negrito... e o resto do texto? acontece o que com ele? Então tive que fazer assim:
<?
    $key  = 'Lorem';
    $text = 'Lorem ipsum dollor sit amet';
    $text = explode("Lorem", $text);
    $key  = str_replace($key, $key, '<b>' . $key . '</b>');
    echo $text[0] . $key . $text[1];
?>

Queria saber se não tem algum modo mais fácil.

E, bom, considero que apenas a primeira ocorrência da palavra-chave será retornada para exibir no resultado da busca... tem idéia de como capturar as 9 palavras anteriores e as 9 posteriores?

Link para o comentário
Compartilhar em outros sites

  • 0

O seu str_replace está errado... o correto é:

<?php
    $text = 'Lorem ipsum dollor sit amet';
    $text = str_replace('Lorem', '<b>Lorem</b>',$text);
    echo $text;
?>

Quanto ao resto, bom ai teria que dar uma boa pensada, pois já até precisei disso, mas larguei de lado pois não era prioritário...

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
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...