Nessa video aula vamos fazer uma busca sem banco de dados(Sim, isso é possível). É uma dúvida bem pertinente, que iremos sanar nessa video aula. Se você tem um site, e quer colocar uma busca, chegou o momento, rs. Espero que gostem, e comentem.
Busca no site sem Banco de Dados com PHP

Boa tarde David, assisti sua vídeo aula sobre busca no site sem banco de dados em PHP. Testei aqui e funcionou perfeitamente. Queria uma ajuda sua em uma única coisa, retornar o resultado da busca pegando o title das páginas e não o nome do arquivo como está em sua vídeo aula. Desde já agradeço a ajuda. Grande abraço.
Alex, isso vai depender como vc tá montando a pagina para pesquisar. Se vc tá colocando toda a pagina, com o a tag title, vc usar expressão regular para pegar, dessa maneira
[code language=”php”]
preg_match(‘/<title>([^<]++)/’, $conteudo, $saida);
echo ‘Titulo ‘.$saida[1];
[/code]
Tentei fazer a pesquisa deu certo apareceu a pag. e tudo, mas quando eu abro a pag. fica na Home.
Coloca o código no http://www.pastebin.com,e me manda o link pra dá uma olhada.
David, estou usando seu código mas tenho uma dúvida: como faço para a pesquisa exibir, ao invés do nome da página, uma tag específica dentro dela?
Marcelo pode utilizar expressão regular pra tentar recuperar um valor de uma tag especifica.
David, apareceu o seguinte erro:
Notice: Undefined offset: 0 in C:\wamp\www\GCC_website\port\busca\index.php on line 72
Linha 72:
$result[] = “$url[0]“;
Isso tem a ver com o fato de eu estar usando array_merge na busca?
Marcelo, o array_merge é para juntar array’s, se vc está utilizando para essa finalidade, e os dados adicionados são array, então está certo.
David, desculpe insistir, mas não sei o que estou fazendo de errado para dar esse erro. Olha como está a parte do script onde pego a tag:
$arquivo = file_get_contents($item);
preg_match(“/()(\w.*)()/s”, $arquivo, $url);
$result[] = ‘‘.$url[0].’‘;
Mas no caso vc tá tentando pegar uma tag ? Vc precisa verificar se esse item existe. Exemplo:
[php]
$arquivo = file_get_contents($item);
$regex = "/<h1>([\w\W]*?)<\/h1>/";
preg_match($regex, $arquivo, $url);
$result[] = isset($url[0]) ? $url[0] : null;
[/php]
David, troquei o código como você mostrou mas tenho uma dúvida: Como volto a usar o $result como link?
//$result [] = ‘‘.$url[0].’‘;
Outra coisa: estou usando //$total = count($result); para exibir os resultados, mas em algumas pesquisas ele acusa sempre um resultado a mais do que os itens mostrados na lista.
Marcelo, faz o filtro, como fiz na videoaula, se tiver o conteudo, vc coloca o nome do arquivo no array.
David, no meu não funciona, fiz exatamente como na aula, mudei apenas a pasta “arquivos” para “paginas”, o meu input busca está em um include “topo”.
teste com palavras sem acentuação, e veja se retorna algo
Continua não aparecendo, aparece apenas o
Resultado da Pesquisa, mas não lista nenhum documento.
Pedro, veja se o charset da página e do arquivo, está como UTF-8
David,
Como faço para que a pesquisa ache os resultados igual aparece nesse video, buscando pelo titulo já com as imagens e com paginação. Se souber poderia me dar uma força, estou procurando sobre o assunto à muito tempo.
https://www.youtube.com/watch?v=NwKX3xQDPHg
Boa tarde David, assisti sua vídeo aula sobre busca no site sem banco de dados em PHP, mas não estou conseguindo fazer dar certo. Eu não estou usando querystring. Os resultados são exibidos numa página com o nome busca. Todos os arquivos para busca se encontram na raíz. então a minha dúvida é como posso fazer na parte de definir a pasta onde está os arquivos da pesquisa, o atual, a listagem dos arquivos da pasta indicada, e atribuir a um array.
Agradeço a ajuda. Grande abraço.
Hugo, basta vc fazer algo assim pra listar
[php]
$arquivos = glob("*.php", GLOB_BRACE);
[/php]
David, deu tudo certo. Muito Obrigado!
Olá David! Eu testei aqui no meu PHP e não funcionou 🙁
Ele dá vários Warnings, Notices e até um Fatal Error.
Testei várias vezes, repeti a video-aula mas nao vai. Tem algum lugar onde posso baixar os arquivos? Procurei no fórum do MxMasters mas nao achei…
Por favor me mande o link
Abraço
Aki o arquivo do tutorial:
http://mxmasters.com.br/comunidade/viewtopic.php?f=50&t=2034&sid=9d253ccadb420089d305708dc52a310e#p9811
David, como sempre você é o cara!
Tem como fazer varredura em várias pasta invés de uma só? Como ficaria?
Outra dúvida criei um arquivo busca.php para imprimir o resultado nela mas não funfa. como devo proceder?
Abraços!!
Vc pode definir varias pastas, sem problema:
[php]
$busca1 = glob("arquivos_1/*.php", GLOB_BRACE);
$busca2 = glob("arquivos_2/*.php", GLOB_BRACE);
$busca = array_merge($busca1, $busca2);
[/php]
Sobre o resultado, vejo os arquivos q da aula, pode te ajudar:
http://mxmasters.com.br/comunidade/viewtopic.php?f=50&t=2034&sid=9d253ccadb420089d305708dc52a310e#p9811
Ola David, a busca esta funcionando muito bem como todos os códigos que você posta. Porém esta imprimindo toda a pagina. Como faço para limitar os caracteres que devem aparecer?
Estou usando o segundo código do link que você postou acima.
Grande David de Macaé…
Me ajude ai meu amigo, sou iniciante, já tentei mas a única maneira de eu aprender fazer isto seria você enviar todo o conteúdo por E-mail, pra mim ir destrinchando e estilizando do meu modo.
Inclusive a página teste que você criou.
Parabéns e um Abraço!
Blz Luciano, o código da aula está aki:
http://mxmasters.com.br/comunidade/viewtopic.php?f=50&t=2034&sid=b9bae91011c46d5f247dda7f99ad47c2
Blz David ficou bom,
Consegui fazer a pesquisa na raiz e sem usar Querystring,
só não sei como colocar trecho do conteúdo no resultado da pesquisa.
Lembrando que sou apenas um curioso qualquer dica vale muito!
ABRAÇO!
Me esqueci,
E como fazer a busca ler em uma específica na página?
Esta lendo tudo, até menu topo e menu produtos (a página em que estou testando), assim o usuário teria muitas páginas em seu resultado.
Por exemplo “cachimbo” todas as páginas tem o nome cachimbo.
ABRAÇO MAIS UMA VEZ!
Luciano, eu fiz uma classe aqui de exemplo, como pesquisar em arquivos específicos, e retornando essas informações, como nome do arquivo, conteudo da pagina, etc
https://gist.github.com/anonymous/7683564
Boa Noite Davi, tudo bem? Na verdade Boa Madrugada…rsrs
Então, antes de perguntar e sanar minha dúvida, quero parabenizar a você por nos ajudar com seus conhecimentos, e muito além disso, a sua dedicação em estar sempre postando algo novo. Muito boa sua didática, parabéns!
A dúvida é a seguinte: Tenho várias paginas e todas elas, eu chamo funções, exemplo:
Só que desta forma, a busca nunca obtém resultado. Então resolvi fazer um teste, e fiz uma página teste desta maneira:
Carro, Fruta, Produtos e etc…
Desta segunda forma, funciona. Já tentei usar $_SERVER[‘HTTP_HOST’] para sanar o problema com as funções, porém, sem sucesso.
Pode me indicar uma solução, porque na internet, não encontrei nada parecido.
Desde já obrigado. Abraço!
Davi, não sei porque não foi, mas a maneira que da errado, eu chamo as funções assim:
nomedafuncao();
E na outra maneira, funciona eu inserindo as palavras Carro, Frutas, Produtos dentro do corpo do site.
Desculpa por postar duas vezes.
Abraço!
Jefferson, fiz uma modificação na classe q fiz de exemplo, q poderá te ajudar:
https://gist.github.com/anonymous/7996105
Forma de utilizar é mesma q informada aqui:
https://gist.github.com/anonymous/7683564
Boa Noite David,
apenas um comentário: SENSACIONAL, funcionou perfeitamente.
Eu tenho tido meus conhecimentos em crescente evolução graças a sua didática e dedicação em suas postagem.
Parabéns…. 🙂
Abraço!
Fico feliz Jefferson, por poder contribuir um pouco nos seus estudos. abrs
Você é phoda cara, obrigado!!!
Vlw Fabio 😀
Já procurei aqui na net e não sei
Estou fazendo meu carrinho e estou com uma duvida, tem como fazer o carrinho já mostrando os produtos que tem no banco, sem mostrar os produtos separadamente com a opção de ‘comprar?
Por favor me ajudem. Urgentee!
Não entendi Flávia, pode me exemplificar ?
Bom dia, pesquisando sobre Busca no site sem Banco de Dados, achei este site, porém, não consigo ver o vídeo e os links para baixar os código estão quebrados. Por favor, podem me ajudar?
Edson, não tenho mais esses arquivos, e nem o video, pq ficava no videolog q não existe mais. Mas criei aqui um exemplo q vc pode utilizar
https://gist.github.com/anonymous/89568b4fe1da4bc40598c0b7c4acee1c
O video nãoaparece
Não tenho mais essa videoaula, pq estava no videolog, e ele não existe mais. Mas nos comentários vc encontra alguns exemplos de scripts pra gerar essa busca.
Muito bom David, sou o pia do site da bíblia lembra ? Eu estava tendo problemas com o layout responsivo, ai resolvi mudar radicalmente o layout, porem eu gostava mais do outro, se quiser dar uma olhada.
Boa tarde David,
estou precisando criar essa consulta no meu site;
Não estou conseguindo acessar o video, pode me ajudar?
Essa videoaula não existe mais, porque ela estava no videolog, mas tem código nos comentários q pode ser usado:
https://www.davidchc.com.br/video-aula/php/busca-no-site-sem-banco-de-dados-com-php/#comment-27943