Pré-requis

La classe est en PHP5 et nécessite cURL. De plus, vous devez avoir une clé google API pour l'exploiter en respectant la charte de Google.

Utilisation

Configuration initiale

Il y a deux constantes à modifier dans la classe:

  • GoogleReferer est l'url de votre page exploitant la classe,
  • GoogleKey est votre clé Google API, que vous obtenez gratuitement sur cette page

Pas à pas

Formulaire de recherche

Tout d'abord, le formulaire de recherche doit suivre une logique de nommage pour les domaines de recherche et la taille du résultat:

<form method="post" action="index.php">
   <fieldset>
      <!-- Champ "Mots clé à rechercher -->
      <label for="keyword">Rechercher : </label><input type="text" name="keyword" id="keyword" />
      <br />
      <!-- Choix des types de recherche -->
      <input type="checkbox" name="search[]" id="web" checked="checked" value="web" /><label for="web">Web </label>
      <input type="checkbox" name="search[]" id="images" value="images" /><label for="images">Images </label>
      <input type="checkbox" name="search[]" id="video" value="video" /><label for="video">Vid&eacute;os </label>
      <input type="checkbox" name="search[]" id="blogs" value="blogs" /><label for="blogs">Blogs </label>
      <input type="checkbox" name="search[]" id="books" value="books" /><label for="books">Livres </label>
      <input type="checkbox" name="search[]" id="news" value="news" /><label for="news">Actualit&eacute;s </label>
      <input type="checkbox" name="search[]" id="local" value="local" /><label for="local">Cartes </label>
      <br />
      <input type="submit" value="Rechercher" />
      <br />
      <!-- Nombre de résultats -->
      Taille des r&eacute;sultats :
      <input type="radio" name="size" id="small" value="small" checked="checked" ><label for="small">Normal </label>
      <input type="radio" name="size" id="large" value="large" ><label for="large">Grand </label>
   </fieldset>
</form>

Ainsi, on constate que toutes les checkboxes remplissent un tableau. Il ne faut pas modifier les values car ce sont celles utilisées par la classe et par google.

Initialisation de la classe

La classe peut être instanciée des manières suivantes:

<?php
// Instanciation simple, les paramètres par défaut sont chargés
$recherche =& new GoogleSearch();
 
// Instanciation en lançant une recherche de type web
$recherche =& new GoogleSearch('web', 'expression à chercher');
?>

Un troisième paramètre, qui est le numéro de la page, peut être employé.

Adaptation des rendus

La methode setPattern() permet de modifier les rendus de résultats. Elle prend deux arguments, le type de résultat et le nouveau rendu à utiliser:

<?php
$recherche->setPattern('web', '<li class="web"><a href="{url}" title="{titleNoFormating}">{title}</a><br />{content}<br /><a href="{url}" title="{titleNoFormating}">{visibleUrl}</a></li>');
$recherche->setPattern('local', '<li class="local"><a href="{url}" title="{titleNoFormating}"><img src="{staticMapUrl}" alt="Lat.: {lat} - Lng.: {lng}" width="150" height="100" /><br />{title}</a><br />{content}<br /><a href="{url}" title="{titleNoFormating}">{visibleUrl}</a></li>');
?>

Les expressions entre accolades sont les mot-clés présents dans l'objet que retourne Google, vous pouvez en trouver la liste exhaustive sur la référence de l'API.

Interrogation de Google

La recherche s'effectue en deux phase, l'interrogation proprement dite et le rendu des résultats. Voici le principe commenté:

<?php
// Boucle sur les types de recherche choisis
foreach($_POST['search'] as $k => $v) {
   // On affecte le bon type
   $recherche->setGtype($v);
   // On effectue la recherche
   $recherche->searchGoogle($_POST['keyword']);
}
// On récupère le résultat des recherches
$res = $recherche->getResults();
// Affichage
echo implode(chr(13).chr(10), $res);
?>

Vous trouverez d'autres options dans la source de la classe, pour pouvoir adapter son utilisation un peu plus.