我正在尝试构建一个用户可以进入他的网站并在谷歌中检查他的索引页面的网站。
就像我们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]
因为这里的结果是一个数组。在这种情况下,我不知道如何在数组中存储信息。
已经搜索了很长时间但找不到任何相关的.....
提前致谢...
答案 0 :(得分: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
。