getError())
{
echo "Error creating client " . $client->getError() . "
";
exit;
}
$client->soap_defencoding = 'UTF-8';
$result = getGoogleResults(&$client, $searchQuery, $start);
$suggestions = getSuggested($searchQuery);
if ($client->fault)
{
echo 'Client Fault';
print_r($result);
echo '
';
} else {
if ($client->getError())
{
echo 'Error' . $client->getError() . '
';
} else
{
$searchQuery = htmlentities($searchQuery);
echo "Search Query: " . $searchQuery . "
";
$x = $result['startIndex'];
$y = $result['endIndex'];
if ($result['estimateIsExact'])
{
echo "Displaying results $x to $y, out of " . $result['estimatedTotalResultsCount'] . " results
";
}else
{
echo "Displaying results $x to $y, out of an estimated " . $result['estimatedTotalResultsCount'] . " results
";
}
$queryResults = $result['resultElements'];
if (count($queryResults) > 1)
{
foreach($queryResults as $item)
{
echo "{$item['title']}
\n";
echo $item['snippet'] . "
\n";
}
}else
{
echo "No results to display";
}
$nextStart = $result['endIndex'];
echo "
";
echo "Next 10 Results";
}
}
}
function runGoogleSearch($client, $searchQuery, $start)
{
$query = array(
'key'=>'u6U/r39QFHK18Qcjz/XdWSbptVaj9k1t',
'q'=>"site:preinheimer.com " . $searchQuery,
'start'=>$start,
'maxResults'=>10,
'filter'=>true,
'restrict'=>'',
'safeSearch'=>true,
'lr'=>'',
'ie'=>'',
'oe'=>''
);
$result = $client->call("doGoogleSearch", $query, "urn:GoogleSearch", "urn:GoogleSearch");
return $result;
}
function getGoogleResults($client, $searchQuery, $start)
{
$key = md5($start . $searchQuery);
// Check for recent items
$query = "SELECT * FROM 06_google_cache_meta WHERE `key` = '$key' AND ((NOW() - `time`) < 84600)";
$results = getAssoc($query);
//print_r($results);
if (count($results) > 0)
{
//echo "Using Cached Data";
//Cache exists and is recent, Create object to return
$result = array();
$result['estimateIsExact'] = $results['estimateIsExact'];
$result['estimatedTotalResultsCount'] = $results['estimatedTotalResultsCount'];
$result['startIndex'] = $start + 1;
$searchResultQuery = "SELECT * FROM 06_google_cache WHERE `query` = '$searchQuery' AND `start`= '$start'";
$searchResults = getAssoc($searchResultQuery);
$result['endIndex'] = $start + count($searchResults);
$result['resultElements'] = $searchResults;
return $result;
}else
{
//Save results
$result = runGoogleSearch(&$client, $searchQuery, $start);
if ($client->fault)
{
return $result;
} else {
if ($client->getError())
{
return $result;
} else
{
$linkID = db_connect();
$queryResults = $result['resultElements'];
$query = mysql_escape_string($searchQuery);
$index = 0;
$insertQuery = "REPLACE INTO 06_google_cache_meta
(`key`, `query`, `start`, `estimateIsExact`, `estimatedTotalResultsCount`, `time`)
VALUES
('$key', '$query', '$start', '{$result['estimateIsExact']}', '{$result['estimatedTotalResultsCount']}', null)";
insertQuery($insertQuery);
if (count($queryResults) > 1)
{
foreach($queryResults as $item)
{
$url = mysql_escape_string($item['URL']);
$snippet = mysql_escape_string($item['snippet']);
$title = mysql_escape_string($item['title']);
$key = md5($start . $index . $query);
$insertQuery = "REPLACE INTO 06_google_cache
(`key`, `index`, `query`, `start`, `snippet`, `title`, `url`)
VALUES
('$key', '$index', '$query', '$start', '$snippet', '$title', '$url')";
replaceQuery($insertQuery, $linkID);
$index++;
}
}
return $result;
}
}
}
}
function getSuggested($query)
{
$suggestions = array();
$query = explode(" ", $query);
$linkID = db_connect();
foreach($query AS $word)
{
$word = mysql_real_escape_string($word, $linkID);
$query = "SELECT * FROM 06_google_suggest WHERE `word` = '$word'";
$suggest = getAssoc($query, 2);
if (count($suggest) > 0)
{
foreach ($suggest as $suggestion)
{
$suggestions[] = $suggestion;
echo "Added a suggestion";
}
}
}
return $suggestions;
}
?>