Ir para conteúdo
Fórum CódigoFonte.net
wilsonoliveira.com

Busca por Frase

Recommended Posts

Olá Pessoal,

Eu criei um sistema de busca simples que não precisa de BD, ele abre as páginas HTML e localiza uma determinada palavra nelas, só que eu queria que ele procurasse a FRASE INTEIRA, dentro desta página (o que não acontece) ex.:

Quando digito Forte tremor na mão direita dentro do input text, o sistema busca as palavras forte, tremor, mão, direita separadamente, encontrando coisas como: café forte, siga à direita ou mão única .

Minha dúvida é: como faser para que ele recomenheça a frase como um todo?

Obrigado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, Não sou desenvolvedor apenas me aventuro de vez em quando... vou mandar todo o código:

<html>

<title>Medicamentos MMP Portugues - Produzido por Photoart ::www.photoartweb.com::</title>

<body background="testes/fundo.gif"; bgproperties="fixed">

<?php

# captura o tempo

$pt = explode(" ", microtime());

$inicio = $pt[1].substr($pt[0],1);

?>

<style type=text/css">

<!--

.style3 {font-size: 18px; font-family: Tahoma;}

-->

</style>

<body background="testes/fundo.gif"; bgproperties="fixed">

<div align="center">

<style type="text/css">

<!--

.style1 {

font-family: Tahoma;

font-size: 16px;

font-weight: bold;

}

-->

</style>

<body style="font-size:11px; font-family:verdana">

</div>

<form method=post>

<div align="center"><span class="style1 style3">Busca por palavras-chave:<BR>

Pesquisar: &nbsp</span> <input name="q" type=text style="font-size:11px; font-family:verdana" value="<?=$q?>">

<input style="font-family:verdana; font-size:11px" type=submit value="Procurar">

</div>

</form>

<div align="center">

<pre> Digite tudo em <b>minúsculo</b></pre>

<pre>

Resultado(s) da Pesquisa Para: <strong><strong><?php echo "$q"; ?></pre>

<pre><font color="#FF0000">Para uma pesquisa nesta página Pressione </strong></strong><strong>[CTRL+F] </font></pre></strong>

</div>

<hr>

<?php

# digite seu site SEM barra no final

$site = "http://seusite.com";

# diretório para pesquisa

$diretorio = "testes";

# abre o diretório especificado

$abredir = opendir($diretorio);

$q = $HTTP_POST_VARS['q];

# palavras chave

$q2 = explode(" ", $q);

# se algo foi digitado na pesquisa

if($q) {

# lê o diretório

while($arq = readdir($abredir))

{

if ($arq != "." && $arq != "..")

{

# seleciona o arquivo

$arquivo = $diretorio . $arq;

# abre o arquivo

$fp = fopen($arquivo, "r");

# lê o arquivo

$fpr = fread($fp, filesize($arquivo));

# substitui caracteres indesejados

$fpr = str_replace(">", "> ", $fpr);

$fpr = str_replace("<", " <", $fpr);

$fpr = str_replace("&nbsp", " ", $fpr);

$fpr = str_replace("&amp", " ", $fpr);

$fpr = str_replace("&copy", " ", $fpr);

$fpr = str_replace(".", " ", $fpr);

$fpr = str_replace(",", " ", $fpr);

$fpr = str_replace("!", " ", $fpr);

$fpr = str_replace("]", " ", $fpr);

$fpr = str_replace("{", " ", $fpr);

$fpr = str_replace("}", " ", $fpr);

$fpr = str_replace("\\", " ", $fpr);

$fpr = str_replace("?", " ", $fpr);

$fpr = str_replace("\"", " ", $fpr);

$fpr = str_replace("'", " ", $fpr);

$fpr = str_replace("~", " ", $fpr);

$fpr = str_replace(":", " ", $fpr);

$fpr = str_replace(";", " ", $fpr);

$fpr = str_replace("_", " ", $fpr);

$fpr = str_replace("^", " ", $fpr);

$fpr = str_replace("(", " ", $fpr);

$fpr = str_replace(")", " ", $fpr);

$fpr = str_replace("[", " ", $fpr);

$fpr = str_replace("=", " ", $fpr);

$fpr = str_replace("&", " ", $fpr);

$fpr = str_replace("\n", " ", $fpr);

$fpr = str_replace(" ", " ", $fpr);

#$fpr = str_replace(" de ", " ", $fpr);

# omite tags HTML

$fpr = strip_tags($fpr);

# copia a string em uma outra variável para ser exibida em sua forma original

$original = $fpr;

# deixa tudo em minúsculas

$fpr = strtolower($fpr);

$q = strtolower($q);

# cria um array contendo todas as palavras

$fpr = explode(" ", $fpr);

# faz o mesmo

$original = explode(" ", $original);

$j = 0;

for($a = 0; $a < sizeof($q2); $a++)

for($g = 0; $g < sizeof($fpr); $g++)

{

if($q2[$a])

if($q2[$a] == $fpr[$g])

{

echo "<p><b><i>Remédio:</i></b> <b><a style=\"color:black\" href=\"" . $site . "/" . $arquivo . "\">" . $arq . "</a></b><BR>";

echo "Trecho:" . " \"..." . " " . $original[$g - 7] . " " . $original[$g - 6] . " " . $original[$g - 5] . " " . $original[$g - 4] . " " . $original[$g - 3 ] . " ". $original[$g - 2 ] . " ". $original[$g - 1 ] . " ";

echo "<B>" . $original[$g] . "</B>" . " ";

echo $original[$g + 1] . " " .$original[$g + 2] . " " . $original[$g + 3] . " " . $original[$g + 4] . " " . $original[$g + 5] . " " . $original[$g + 6] . " " . $original[$g + 7] . " " . $fpr[$g + 8] . " " . $fpr[$g + 9] . " " . $fpr[$g + 10] . " " . $original[$g + 11] . " " . $original[$g + 12] . " " . $original[$g + 13] . " " . $original[$g + 14] . " " . $original[$g + 15] . " " . $original[$g + 16] . " " . $original[$g + 17] . " " . $original[$g + 18] . " " . $original[$g + 19] . " " . $original[$g + 20] . " " ."...\"</p>";

break;

}

}

}

}

# fecha o diretório

closedir($abredir);

}

# imprime o tempo da pesquisa

if($q)

{

$pt = explode(" ", microtime());

$total = ($pt[1] . substr($pt[0], 1)) - $inicio;

echo "<p align=\"center\"><font style=\"font-size:9px\"><i>A busca durou " . substr($total,0,4) . " segundos</i></font></center></p>";

}

?>

</body>

</html>

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até que é interessante isso aí.

Mas acho que não foi você quem fez, foi?

Você criou um array com todas as palavras e depois fez um for pra correr o array e procurar pelas palavras da busca.

Um jeito POG de fazer é dar explode pela frase toda no texto inteiro (antes de virar array) e se dividir o texto é porque achou.

$texto = "texto todo do html que voce abriu";

$pesquisa = "do html";

$handle = explode($pesquisa, $texto);

if(isset($handle[1])){

echo "achou";

}else{

echo "nao achou";

}

bom estudo aí

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até que é interessante isso aí.

Mas acho que não foi você quem fez, foi?

Na Verdade isso é um baite "frankstain" tem parte de um código daqui e outro dalí e firou isso que tá aí....

$texto = "texto todo do html que voce abriu";

$pesquisa = "do html";

$handle = explode($pesquisa, $texto);

if(isset($handle[1])){

echo "achou";

}else{

echo "nao achou";

}

Onde eu envio isso (óia a graça kkkk)....

Cara, Na verdade eu peguei um outro sistema de busca que é melhor que este, mas também não busca por frase...

Você poderia me ajudar por e-mail???? Eu mando o outro código pra você e só me fala como buscar a frase e as palavras... Pode ser?

Aí você pode postar aqui o código pronto. Aceita?

bom estudo aí

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...