0

ユーザーが自分の Web サイトにアクセスして、Google でインデックスされたページを確認できる Web サイトを構築しようとしています。私たちがそうするのと同じようにsite:domain.com

Google API を使用しています。API へのリンクは次のとおりです (非推奨であることはわかっています)。

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=

次のようなコードを使用すると

<?php  

function getGoogleCount($domain) {
    $content = file_get_contents('http://ajax.googleapis.com/ajax/services/' .
        'search/web?v=1.0&filter=0&q=site:' . urlencode($domain));
    $data = json_decode($content);
    return ($data->responseData->cursor->estimatedResultCount);
}

echo getGoogleCount('stackoverflow.com');

?>

結果数について知りたい限りは良いですが、次にしたいことは、すべての結果を自分の Web サイトにリストすることです。書き込み時に結果を取得できません

$data->responseData->cursor->estimatedResultCount

それはまっすぐだけど、結果を得ようとするとき。どうすればいいのかわからない、アイデアを印刷するだけ

$data->responseData->results->[url & title & content here]

ここでは結果が配列であるためです。この場合、配列に情報を保存する方法がわかりません。

ずっと探しているのですが、関連するものは見つかりませんでした.....

前もって感謝します...

4

1 に答える 1

1

最も簡単な方法は、次を使用することです。

$data = json_decode($content, true);

これにより、オブジェクトがおそらく扱いやすい通常の連想配列に変換されます。次に、次のような方法で値にアクセスします。

$results = $data['responseData']['results']; //array
$googleCount = $data['responseData']['cursor']['estimatedResultCount'];

次に、結果を使用して、次のようなことができます。

foreach ($results as $result) {
    echo $result['title'].' -> '.$result['url'] . '<br />';
}

もちろん、連想配列が好きではなく、オブジェクトを好む場合は、次のようにすることもできます。

$data = json_decode($content);
foreach ($data->responseData->results as $result) {
    echo $result->title .' -> '.$result->url.'<br />';
}

$result を持つプロパティを確認したい場合は、print_rまたはを使用してくださいvar_dump

于 2012-10-07T20:15:41.363 に答える