Ir para conteúdo

POWERED BY:

Arquivado

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

Murloke

Colocar campo de busca sem utilizar banco de dados

Recommended Posts

Boa tarde pessoal. Tenho uma cliente, a única cliente rs que quer colocar um campo de busca no site dela, porém o site dela não possui banco de dados. Este é o site: http://www.firstlinebrindes.com.br/

 

Essa é a estrutura do site:

2926tfn.png

Depois tenho a página index.html e as páginas dos produtos, como: caneca.html, cordoes.html e etc.

 

2yltjwh.png

 

Criei uma página index.php de teste e coloquei este código que encontrei em alguns foruns, ele cria um campo de busca e envia as informações digitadas para o código php buscar minhas páginas de produto.

Porém, sempre que digito o nome do produto "caneca", ou qualquer outro, a informação que trás é de um else que mostra: "Nenhum resultado encontrado".

 

Gostaria de saber o que eu estou fazendo de errado, se alguém puder me ajudar, agradeço muito.

<html lang="pt-bt">
<title>Pesquisa</title>
<head>
<meta charset="utf-8"/>
</head>
<body>
<form method="post" action="index.php">
<input name="pesquisa" type="text" placeholder="Pesquise..."/>
<br>
<input type="submit" value="Pesquisar"/>
</form>
</body>
</html>

<?php 

//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 = "public_html";
//arquivo atual
$atual = "../first_line_brindes/index.php";

//faz a listagem dos arquivos da pasta indicada, e atribui a um array
$arquivo1 = glob("../public_html/*.php", GLOB_BRACE);
$arquivo2 = glob("../public_html/*.php", GLOB_BRACE);
$arquivo3 = glob("../public_html/*.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.';
}

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quer uma sugestão? Utilize a busca personalizada do google, o resultado será melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também não entendi nada... essa foi boa. Quer uma busca em um site estático para que fim ? o óbvio é que se ele é estático deverá ter um link para sua respectiva página, então, você tá buscando o que afinal ? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu gostaria de buscar a página especifica do produto. Por exemplo:

Se eu digitar "mochila", que apareça, um item encontrado: no caso mochila, ao clicar na palavra mochila, vai levar para página da mochila.

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.