Fala gente,
Semana passada falei sobre a busca rápida (ou Open Search)… Muita gente ficou interessada em como poderiam incluir esse recurso em seus sites então eu fiz um scriptzinho pra facilitar a vida de vocês.
Pra você poder usar esse recurso no seu site o mesmo precisa ter suporte a busca via método GET… Método GET é quando os parâmetros são enviados na URL, veja o exemplo do Google:
http://www.google.com.br/search?q=Thiago+Belem
Aquela parte no fim onde tem “?q=” significa que o parâmetro “q” está sendo passado por método GET, caso contrário você não veria nada na URL.
O que realmente importa é se o que foi buscado aparece na URL da pagina que mostra os resultados de busca, não importa como ou em qual posição… Faça uma busca aqui no blog e você verá que, o que você buscou, aparece na URL.
Sem mais baboseiras, vamos direto ao ponto:
Primeiro você precisa inserir um código HTML dentro do <head> do seu site que irá avisar os outros sites, sistemas e navegadores que o seu site tem um Open Search:
<link rel="search" type="application/opensearchdescription+xml" href="http://www.meusite.com.br/opensearch.php" title="Meu Site" />
Perceba que o código está apontando pra um arquivo opensearch.php, o nome do arquivo não importa, mas o seu conteúdo sim:
<?php
/**
* Gerador de busca 'open search' para sites
*
* @author Thiago Belem <contato@thiagobelem.net>
* @version 1.0
* @require PHP 5.1.3+
*/
$_CONFIG = array(
'site_nome' => 'Meu Site',
'site_nome_longo' => 'Meu Site Legal',
'busca_descricao' => 'Busque no Meu Site',
'email_contato' => 'contato@meusite.com.br',
'endereco_busca' => 'http://meusite.com.br/busca.php?q={searchTerms}',
'imagem_icone' => 'http://meusite.com.br/open_search.jpg',
'imagem_tamanho' => array(16, 16),
'imagem_mimetype' => 'image/jpg',
'conteudo_adulto' => false,
'linguagem' => 'pt-br'
);
// --------- Aqui você pode parar de editar :] ---------
header('Content-Type: text/xml; charset=UTF-8');
$xml = new SimpleXMLElement('<OpenSearchDescription></OpenSearchDescription>');
$xml->addAttribute('xmlns', 'http://a9.com/-/spec/opensearch/1.1/');
$xml->addChild('ShortName', $_CONFIG['site_nome']);
$xml->addChild('LongName', $_CONFIG['site_nome_longo']);
$xml->addChild('Description', $_CONFIG['busca_descricao']);
$xml->addChild('Contact', $_CONFIG['email_contato']);
$url = $xml->addChild('Url');
$url->addAttribute('type', 'text/html');
$url->addAttribute('template', $_CONFIG['endereco_busca']);
$imagem = $xml->addChild('Image', $_CONFIG['imagem_icone']);
$imagem->addAttribute('width', $_CONFIG['imagem_tamanho'][0]);
$imagem->addAttribute('height', $_CONFIG['imagem_tamanho'][1]);
$imagem->addAttribute('type', $_CONFIG['imagem_mimetype']);
$xml->addChild('AdultContent', ($_CONFIG['conteudo_adulto'] ? 'true' : 'false'));
$xml->addChild('Language', $_CONFIG['linguagem']);
$xml->addChild('SyndicationRight', 'open');
echo $xml->asXml();
exit;
?>
Agora preste atenção no bloco de configuração no começo do arquivo!
Dê atenção a parte que tem “endereco_busca”… É ali que você precisa colocar a URL da sua página de busca (resultado de busca) e colocar {searchTerms} no lugar que irão os parâmetros de busca… Vamos voltar ao exemplo da busca do Google:
Se eu buscar por “Thiago Belem” a url de resultado vai ficar mais ou menos assim:
http://www.google.com.br/search?q=Thiago+Belem
Então, criando um open search pra essa mesma busca do Google, teríamos isso na parte “endereco_busca”:
http://www.google.com.br/search?q={searchTerms}
As outras opções são fáceis de entender…
Pra quem gostou e quer saber mais: http://www.opensearch.org/
Espero que tenham gostado!
Você também vai gostar de ler:
- Busca Rápida
- Resultados de busca do Google no seu site
- Sistema de busca em PHP e MySQL com paginação
- Otimizando o seu site – Carregamento
- Exibindo mapas no seu site – Google Maps + PHP – Parte 2
Com as tags Busca, Busca Rápida, Código, Configuração, Firefox, Gerador, Google, Header, HTML, Navegador, Open Search, Parâmetros, PHP, PHP 5, Resultados, Script, Scripts, Search, SimpleXML, SimpleXMLElement, Sistema, Sistemas, Tutoriais, URL, XML
Escrito por Thiago Belem
Gostou desse artigo?
Não se esqueça de assinar o RSS e divulgue-o para o mundo:

E ai thiago, blz
Cara estou aprendendo a usar PHP para melhorar os meus sites e ainda tenho algumas dificuldades em usar esse scripts em PHP.
Eu não intende em que lugar da página eu tenho que colocar esse código, vc poderia me ajudar??
Essa é uma das dúvidas que surgem para quem é iniciante em php, e já tive dúvidas iguais com outros scripts seus.
Vc poderia me ajudar? Eu criei um arquivo opensearch.php e já inseri aquela tag HTML na página antes do . Agora eu tenho que criar mais um arquivo busca.php para exibir o resultado da busca??
@Ricardo
Esse artigo apenas ensina a ligar o Open Search a busca do seu site que, claro, já deveria existir antes… Ele não é um sistema de busca. A unica coisa que esse recurso faz faz é transferir o que foi digitado (no campo de busca do navegador) para a URL de busca do seu site.
Intende. Obrigado!
Daew Thiago, muito bacana esse recurso de busca… ajudaria bastante no meu site, mas tem uma coisa: a minha página de busca, utiliza vários parâmetros para fazer a busca, (seria uma busca por imóveis, e estes, com várias opções de busca). Tem como adaptar esse script para ele funcionar para qualquer form de busca?
@Gabriel Lau
Infelizmente não… O Open Search funciona apenas em “um campo” de busca… O que você pode tentar fazer é criar um Open Search pra cada uma dessas opções/categorias de busca.
Muito bom!
Valeu.
FalAe!
Vlw cara, vou tentar aplicar no meu site.
Gostei dessa utilidade.
Vou incluir no meu blog
Abraços thiago!