PHP5 Source codes
Recherche sur le web
Ce formulaire vous permet d'effectuer des recherches sur le web (ou sur ce site)
en utilisant les moteurs de recherche Yahoo ou Google.
Ce «meta-moteur» est basé sur les API :
Source PHP de la classe Google
<?php
class GoogleWebSearch {
private $WsdlUri = 'http://api.google.com/GoogleSearch.wsdl';
private $LicenceKey = '';
static $Instance = false;
private function __construct() {
$this->LicenceKey = GOOGLE_LICENCE_KEY;
}
static function GetInstance() {
if(empty(self::$Instance)) {
self::$Instance = new GoogleWebSearch();
}
return self::$Instance;
}
public function search($query , $start=0, $results=10, $similar_ok=false, $adult_ok=false , $lang='fr') {
// ----------------------------------
// paramètres non pris en compte :
$restrict = '';
// ----------------------------------
// Limitation due a l API
if($results > 10) {
$results = 10;
}
$params = array(
'key' => $this->LicenceKey,
'q' => utf8_encode($query),
'start' => (int)$start,
'maxResults' => (int)$results,
'filter' => (boolean)$similar_ok,
'restrict' => $restrict,
'safeSearch' => (boolean)$adult_ok,
'lr' => $lang,
'ie' => '',
'oe' => ''
);
if(! @ $Client = new SoapClient($this->WsdlUri)) {
throw new Exception('SOAP error', '....');
return false;
}
if(! @ $O = $Client->__call("DoGoogleSearch", $params)) {
throw new Exception('SOAP error', '....');
return false;
}
return $this->toArray($O, $query);
}
private function toArray($r, $search) {
$ret['Search'] = $search;
$ret['TotalResults'] = $r->estimatedTotalResultsCount;
$ret['Start'] = $r->startIndex;
$i = 0;
foreach($r->resultElements as $key => $val) {
$ret['Results'][$i = ++$i+1] = array(
'Title' => strip_tags(utf8_decode($val->title)),
'URL' => $val->URL,
'Summary' => strip_tags(utf8_decode($val->snippet))
);
}
return $ret;
}
}
?>
class GoogleWebSearch {
private $WsdlUri = 'http://api.google.com/GoogleSearch.wsdl';
private $LicenceKey = '';
static $Instance = false;
private function __construct() {
$this->LicenceKey = GOOGLE_LICENCE_KEY;
}
static function GetInstance() {
if(empty(self::$Instance)) {
self::$Instance = new GoogleWebSearch();
}
return self::$Instance;
}
public function search($query , $start=0, $results=10, $similar_ok=false, $adult_ok=false , $lang='fr') {
// ----------------------------------
// paramètres non pris en compte :
$restrict = '';
// ----------------------------------
// Limitation due a l API
if($results > 10) {
$results = 10;
}
$params = array(
'key' => $this->LicenceKey,
'q' => utf8_encode($query),
'start' => (int)$start,
'maxResults' => (int)$results,
'filter' => (boolean)$similar_ok,
'restrict' => $restrict,
'safeSearch' => (boolean)$adult_ok,
'lr' => $lang,
'ie' => '',
'oe' => ''
);
if(! @ $Client = new SoapClient($this->WsdlUri)) {
throw new Exception('SOAP error', '....');
return false;
}
if(! @ $O = $Client->__call("DoGoogleSearch", $params)) {
throw new Exception('SOAP error', '....');
return false;
}
return $this->toArray($O, $query);
}
private function toArray($r, $search) {
$ret['Search'] = $search;
$ret['TotalResults'] = $r->estimatedTotalResultsCount;
$ret['Start'] = $r->startIndex;
$i = 0;
foreach($r->resultElements as $key => $val) {
$ret['Results'][$i = ++$i+1] = array(
'Title' => strip_tags(utf8_decode($val->title)),
'URL' => $val->URL,
'Summary' => strip_tags(utf8_decode($val->snippet))
);
}
return $ret;
}
}
?>