| // +----------------------------------------------------------------------+ // // Example of use: // // require_once 'SOAP_Google.php'; // $google = new SOAP_Google('your license key'); // $result = $google->search( // array( // 'query' => 'sebastian bergmann' // ) // ); // if (false !== $result) { // print_r($result); // } else { // echo 'Query failed.'; // } // require_once 'SOAP/Client.php'; /** * PHP Interface to the Google API * * @author Sebastian Bergmann * @access public */ class SOAP_Google { /** * @var string * @access private */ var $_licenseKey = ''; /** * @var object * @access private */ var $_soapClient = NULL; /** * Constructor. * * @param string * @access public */ function SOAP_Google($licenseKey) { $this->_licenseKey = $licenseKey; $this->_soapClient = new SOAP_Client( 'http://api.google.com/search/beta2' ); } /** * Retrieves a page by URL from the Google Cache. * * @param string * @return mixed * @access public */ function getCachedPage($url) { $result = $this->_performAPICall( 'doGetCachedPage', array( 'key' => $this->_licenseKey, 'url' => $url ) ); if ($result) { $result = base64_decode($result); } return $result; } /** * Retrieves a spelling suggestion for a phrase. * * @param string * @return mixed * @access public */ function getSpellingSuggestion($phrase) { return $this->_performAPICall( 'doSpellingSuggestion', array( 'key' => $this->_licenseKey, 'phrase' => $phrase ) ); } /** * Performs a web search. * * @param array * @return mixed * @access public */ function search($parameters = array()) { if (!isset($parameters['query'])) { return false; } return $this->_performAPICall( 'doGoogleSearch', array( 'key' => $this->_licenseKey, 'q' => $parameters['query'], 'start' => isset($parameters['start']) ? $parameters['start'] : 0, 'maxResults' => isset($parameters['maxResults']) ? $parameters['maxResults'] : 10, 'filter' => isset($parameters['filter']) ? $parameters['filter'] : false, 'restrict' => isset($parameters['restrict']) ? $parameters['restrict'] : '', 'safeSearch' => isset($parameters['safeSearch']) ? $parameters['safeSearch'] : false, 'lr' => isset($parameters['lr']) ? $parameters['lr'] : '', 'ie' => isset($parameters['ie']) ? $parameters['ie'] : '', 'oe' => isset($parameters['oe']) ? $parameters['oe'] : '' ) ); } /** * @param string * @param array * @return mixed * @access private */ function _performAPICall($apiCall, $parameters) { $result = $this->_soapClient->call( $apiCall, $parameters, 'urn:GoogleSearch' ); if (!PEAR::isError($result)) { return $result; } else { return false; } } /** * getFault * * returns a simple native php array containing the fault data * * @return array * @access public */ function getFault() { return $this->_soapClient->__getfault(); } } ?>