2012-02-08 4 views
5

は、私がこれを行う方法を探しています:私の検索用語は「猫の動画」であればGoogle検索結果をPHP配列に読み込みますか?要するに

$results_array = google("search terms"); // returns array of URLs 

ので、例えば、私の$ results_array [0] YouTubeのURLであるかもしれない、と$ results_array 1はVimeoに登録されている可能性があります。

私はGoogleカスタム検索APIを見たことがありますが、複雑なJSON変換、ATOM、REST、あるいは私がしようとしていることでは過度に複雑なシステムが必要です。

簡単な解決策はありますか?

編集:私は、私はそれを把握することができたthis postに別のポストに感謝

おかげで、それを発見しました。要するに、私は単純に次のように使用:

$results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

echo $results->responseData->results[$resultNumber]->url; 

私は少し驚き、downvotesによってdisapointedだ - 確かではかなり一般的な質問、非常に単純な答えのようです。これにはJSONが関わっていますが、ユーザーにとっては完全に透過的です。おそらく、私は尋ねたものに、より正確な解は次のようになります。

function google($query) { 
    $results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

    return $results->responseData->results 
} 
+4

JSONはどのように複雑になっていますか?あなたの実装のための最初の選択肢のようです。間違いなく、HTML検索結果を解析するようなものよりも複雑ではありません... –

+2

googleはapiをバイパスしようとするものは好きではありませんので、直接リクエストを行い、結果を解析しようとすると、ホストが禁止される可能性があります。 – Cheery

答えて

3

あなたがビデオの結果を得るにはワンならば、あなたはこれを試すことができます。

//replace space between words with + 
$query = "cat+video"; 
$start = 0; 
/* 
this url will give you json response with 4 results each time. 
u have to change the $start like 0, 4, 8,... 
use json_decode() and get it in array 
*/ 

$url = 'https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q='.$query.'&start='.$start 

希望します。

関連する問題