我使用谷歌的地方API和当我请求提供的URL在chrome浏览器(在Mac)比它返回超过20结果。
但是,当我要求相同的URL在PHP的curl代码,它只返回6个结果。
无法得到它的工作。请帮助。
$ch = curl_init();
$url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=31.4814662,74.411793&radius=20000&keyword='.urlencode('ac technician').'&key=API_KEY';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec($ch);
echo "#####".$response; exit();
我无法重现这个问题,因为你的代码对同一个api调用返回了15个结果。我看了一下,似乎在做了很多调用之后,它只返回5个结果。
但是,如果你说在浏览器中得到的结果比在curl调用中得到的结果多,我会模仿浏览器发送的头文件,从以下开始。User-Agent
. 检查添加这个是否对你有效。
$headers = array();
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
这个头是复制一个可以由firefox浏览器发送的头.