2010-02-22 19 views
2

我很抱歉,這個問題可能不是最清楚的,但我會盡我所能來表達。Google本地搜索PHP到Javascript

在我的PHP腳本中,我正在處理一個字符串。我想抓住括號[]之間的任何內容並在字符串上執行谷歌本地搜索(請參閱http://code.google.com/apis/ajax/playground/#show_driving_directions)。處理完搜索後,我只想獲取第一個結果。

只是作爲背景,我有PHP腳本執行任何時候一個「消息」的用武之地。

我把所有的正則表達式的東西的工作,只需要知道流將調用谷歌搜索API是什麼並返回第一個結果。

回答

2

我建議直接調用AJAX API,並將JSON的結果解析爲對象(json_decode())並獲取第一個結果。

見API文檔在下面的部分,

http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_urlbase http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_args http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_local

我個人一直在一些類,圍繞AJAX API包裝,但他們沒有在附近完成(可能會重構它們以獲得更好的結構)。

但是,如果您願意,您可以從我的SVN獲取當前源代碼。我已經完成了本地搜索,它以當前的形式工作。

http://codelib.stephenmelrose.co.uk/svn/php/branches/1.0/library/

你會使用它像,

require_once("library/google/search/Local.php"); 

$google_search = new SM_Google_Search_Local('starbucks'); 
$google_search->setHTTPReferer("http://localhost.localhost/"); 
$google_search->setResultSetSize(Google_Search::RESULT_SET_SIZE_LARGE); 
$google_search->setCenterPoint('53.79548,-1.549416'); 

$response = $google_search->getResponse(); 
$results = $response->getResults(); 

// Your first result 
$results[0]; 
+0

我爲什麼需要設置httpreferer? – st4ck0v3rfl0w

+0

也是$迴應從哪裏來? – st4ck0v3rfl0w

+0

告訴你它沒有完成,還沒有完成文檔! :)響應是來自API的響應。你得到的不僅僅是結果。你也得到傳呼等等。然後您從響應中獲得結果。至於HTTP_REFERER,您需要根據Google的API說明提供一個。 –