O'Reilly Hacks
oreilly.comO'Reilly NetworkSafari BookshelfConferences Sign In/My Account | View Cart   
Book List Learning Lab PDFs O'Reilly Gear Newsletters Press Room Jobs  



HACK
#96
Program Google in PHP
A simple example of programming the Google Web API with PHP and the NuSOAP module
The Code
[Discuss (0) | Link to this hack]

The Code

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 keyhere with your Google API key.

<!--
# googly.php
# A typical Google Web API php script.
# Usage: Point your browser at googly.php\
-->
<html>
<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>
</html>


O'Reilly Home | Privacy Policy

© 2007 O'Reilly Media, Inc.
Website: | Customer Service: | Book issues:

All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.