CSE谷歌自定义页面api显示50个结果PHP?
我试图用下面的PHP代码获得Google CSE API的前50个结果 问题是,它将两个页面合并在一起,结果变得混乱,就像第一个位置是第一个页面的位置,第二个位置是第二个页面的第二个位置,依此类推。有人能告诉我我做错了什么吗 我实际上想做的是得到数组中的前50个结果,但下面的代码给出了混合结果CSE谷歌自定义页面api显示50个结果PHP?,php,api,google-custom-search,Php,Api,Google Custom Search,我试图用下面的PHP代码获得Google CSE API的前50个结果 问题是,它将两个页面合并在一起,结果变得混乱,就像第一个位置是第一个页面的位置,第二个位置是第二个页面的第二个位置,依此类推。有人能告诉我我做错了什么吗 我实际上想做的是得到数组中的前50个结果,但下面的代码给出了混合结果 $apiKey = "theapikey"; $query = "news"; for ($i = 1; $i <= 5; $i++) { $ch = curl_init(); $requ
$apiKey = "theapikey";
$query = "news";
for ($i = 1; $i <= 5; $i++) {
$ch = curl_init();
$request = "https://www.googleapis.com/customsearch/v1?q=" . urlencode( "$query" ) . "&cx=013594553343653397533:q-qkkaltmay" ."&key=" . $apiKey . "&start=" . $i;
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($ch);
$output = json_decode($output);
foreach( $output->items as $result ) {
$url = $result->link;
${"items" . $i}[] = $url;
}
}
echo json_encode($items1);
$apiKey=“theapikey”;
$query=“新闻”;
对于($i=1;作为$result的$i项){
$url=$result->link;
${“items”。$i}[]=$url;
}
}
echo json_编码($items1);
看起来您正在将每组10个结果添加到一个单独的数组中,因此$items1具有前10个结果,$items2具有后10个结果,以此类推。如果您希望将所有50个结果都添加到一个数组中,则无需在数组名称中使用索引
另外,“start”参数是您想要的结果的编号,而不是结果集的编号-因此您希望第一个查询从1开始,第二个查询从11开始,第三个查询从21开始,以此类推
在将结果添加到数组之前,您可能还需要检查结果中是否有内容
我可能会这样做:
$apiKey = "theapikey";
$query = "news";
$items = array();
for ($i = 1; $i <= 5; $i++) {
$ch = curl_init();
$request = "https://www.googleapis.com/customsearch/v1?" .
"q=" . urlencode( "$query" ) .
"&cx=013594553343653397533:q-qkkaltmay" .
"&key=" . $apiKey .
"&start=" . ( ($i - 1)*10 + 1 );
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($ch);
$output = json_decode($output);
foreach( $output->items as $result ) {
if ($url = $result->link && trim($url)) $items[] = $url;
}
}
echo json_encode($items);
$apiKey=“theapikey”;
$query=“新闻”;
$items=array();
对于($i=1;作为$result的$i项){
如果($url=$result->link&&trim($url))$items[]=$url;
}
}
echo json_编码($items);
最后,有几点需要注意:
- 关于这个JSON api是否已被弃用以及是否可能会消失还有很多问题
- 接下来10个结果的每个查询都将计入您的配额。如果你担心每个月都会出现疑问,或者如果你正在为配额增加付费,你可能只想检索你需要的东西。