PHP (http://www.php.net/), a recursive acronym for PHP Hypertext Processing, has seen wide use as the HTML-embedded scripting language for web development. Add to that the NuSOAP PHP module for creating and consuming SOAP-based web services (http://dietrich.ganx4.com/nusoap) and you have a powerful combination.
This hack illustrates basic use of PHP and NuSOAP in concert to interact with the Google Web API.
Save the following code as a plain text file named googly.php somewhere on your web site where PHP is able to run. Don't forget to replace insert key here with your Google API key.
<!-- # googly.php # A typical Google Web API php script. # Usage: Point your browser at googly.php--> <l> <head> <title>googly.php</title> </head> <body> <h1>Googly</h1> <form method="GET"> Query: <input name="query" value="<? print $HTTP_GET_VARS['query'] ?>"> <input type="submit" name="Search"> </form> <? # Run the search only if you're provided a query to work with. if ($HTTP_GET_VARS['query']) { # Use the NuSOAP php library. require_once('nusoap.php'); # Set parameters. $parameters = array( 'key'=>'insert key here', 'q' => $HTTP_GET_VARS['query'], 'start' => 0, 'maxResults' => 10, 'filter' => false, 'restrict' => '', 'safeSearch' => false, 'lr' => '', 'ie' => 'latin', 'oe' => 'latin' ); # Create a new SOAP client, feeding it GoogleSearch.wsdl on Google's site. $soapclient = new soapclient("http://api.google.com/search/beta2"); # Query Google. $results = $soapclient->call('doGoogleSearch',$parameters, 'urn:GoogleSearch', 'urn:GoogleSearch'); # Results? if ( is_array($results['resultElements']) ) { print "<p>Your Google query for '" . $HTTP_GET_VARS['query'] . "' found " . $results['estimatedTotalResultsCount'] . " results, the top ten of which are:</p>"; foreach ( $results['resultElements'] as $result ) { print "<p><a href='" . $result['URL'] . "'>" . ( $result['title'] ? $result['title'] : 'no title' ) . "</a><br />" . $result['URL'] . "<br />" . ( $result['snippet'] ? $result['snippet'] : 'no snippet' ) . "</p>"; } } # No results. else { print "Your Google query for '" . $HTTP_GET_VARS['query'] . "' returned no results"; } } ?> </body> <l>
Point your web browser at your googly.php, fill in a query, and click the Search button. Figure 9-1 shows the results of a search for php.
Services_Google package (http://pear.php.net/package/Services_Google), a PHP 5 interface to the Google API.