使用 Google API 检查域名索引

问题描述 投票:0回答:1

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

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');

?>

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

$data->responseData->cursor->estimatedResultCount

直线前进, 但当我们试图得到结果时。我不知道该怎么做,只是打印想法:

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

因为这里的结果是一个数组,我不知道在这种情况下如何将信息存储在数组中。

找了好久都没有找到相关内容......

php arrays indexing google-api
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

© www.soinside.com 2019 - 2024. All rights reserved.