0

我正在尝试建立一个网站,用户可以在其中输入他的网站并在谷歌中检查他的索引页面。就像我们做的那样site:domain.com

我正在使用谷歌 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');

?>

就我想知道的结果而言很好但是接下来我想要在我的网站上列出所有结果。我无法获取结果,因为当我们写

$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_ror var_dump

于 2012-10-07T20:15:41.363 回答