Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo2605

Sistema de busca php sem banco de dados

Recommended Posts

Estou usando um script bacana que peguei na web de um sistema de busca php para sites que não usam banco de dados. Mas ele tem apresentado alguns problemas no meu caso. Alguém conhece outro script ou tutorial para este caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma ae... Você deve passar mais detalhes... Onde você quer buscar? No conteudo HTML? em nome de paginas?... Qual o script que você pegou? talvez há como implementa-lo. Passa aí para que possamos lhe ajudar!

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cristian, o script é esse:

 

//verifica se existe o campo $_POST['pesquisa'] vindo do formulário
$pesq = (isset($_POST['pesquisa'])) ? trim($_POST['pesquisa']) : '';

//verifica se o campo está vazio
if(empty($pesq)){
echo 'Digite uma palavra no campo de busca.';
}elseif(strlen($_POST['pesquisa']) < 3){
echo 'Digite pelo menos três letras.';
}else{
//pasta onde está os arquivos da pesquisa        
$pasta = "arquivos";
//arquivo atual
$atual = "../busca/index.php";

//faz a listagem dos arquivos da pasta indicada, e atribui a um array
$arquivo1 = glob("../pasta1/$pasta/*.php", GLOB_BRACE);
$arquivo2 = glob("../pasta2/$pasta/*.php", GLOB_BRACE);
$arquivo3 = glob("../pasta3/$pasta/*.php", GLOB_BRACE);


$busca  = array_merge($arquivo1, $arquivo2, $arquivo3); 
//percorre o array
foreach($busca as $item){
//verifica se o arquivo não é o atual
if($item !== $atual){
//abre o arquivo
$abrir = fopen($item, "r");
//faz um loop até chegar o final do arquivo
while(!feof($abrir)){
//ler arquivo
$lendo = fgets($abrir);
//remove os caracteres html e php
$lendo = strip_tags($lendo);

//verifica se tem algum um item da pesquisa
if(stristr($lendo, $pesq) == true){
//remove a extensão .php
$dados = str_replace(".php", "", $item);
//retorna o nome apenas do arquivo
$area = dirname($dados);
$area2 = str_replace("/arquivos", "", $area);
$dados = basename($dados);

//coloca o link no array
$result[] = '<a href="port/../'.$area2.'/index.php?pagina='.$dados.'">'.$dados.'</a>';
//apaga a variavel $dados
unset($dados);
}
//apague a variavel lendo
unset($lendo);
}
//fecha o arquivo
fclose($abrir);    
}                
}

/*IMPRIMIR O RESULTADO*/

//verifica seo result existe
if(isset($result) && count($result) > 0){
//remove os resultado iguais
$result = array_unique($result);

//total de resultados
$total = count($result);
echo $total.' resultados encontrados.';

echo '<ul>';

//percorre o array
foreach($result as $link){
echo "<li>$link</li>";
}
echo '<ul>';
}else{
echo 'Nenhum resultado encontrado.';
}

}

 

O meu principal problema é que eu preciso que o resultado exiba o conteúdo de uma div (#titulo).

 

$result[] = '<a href="port/../'.$area2.'/index.php?pagina='.$dados.'">'.$dados.'</a>';

 

Tentei com pregmatch mas não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o conteudo desses arquivos .php?

 

Cristian, cada pasta tem um arquivo index.php e uma série de arquivos .php com o conteúdo daquela pasta. Eles são inseridos no index.php por include.

 

Por isso o path: ../pasta1/$pasta/*.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... Tudo bem, olha seria bem mais simples você implantar um sistema com banco de dados, e também quem sabe melhorar seu codigo. Agora caso isso não seja possivel acho que a causa de que você não tenha conseguido com o pregmatch pode ser que esteja tentando capturar o que está antes da <div id="Title"> só que você já removeu todo o HTML com o uso do strip_tags você se lembra? Tente novamente e veja se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.