我正在编写Geo编码的一些地址,我找到了example,它使用cURL来提取json数据。由于某种原因,它一直在返回null
我已经回复了$url
并将其复制到浏览器的地址字段中,并且它按预期工作,因此我知道URL有效。有没有人在我的代码中发现错误?
for($count=0; $count < count($uploadedArray); $count++) {
$address = "";
$address .= $uploadedArray[$count]["Address"] . " ";
$address .= $uploadedArray[$count]["City"] . ", ";
$address .= $uploadedArray[$count]["State"] . " ";
$address .= $uploadedArray[$count]["Zip"];
$url = urlencode("https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "=%s&sensor=false");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$geoloc = json_decode(curl_exec($ch), true);
var_dump($geoloc);
echo $geoloc['results'][0]['geometry']['location']['lat']; // get lat for json
echo $geoloc['results'][0]['geometry']['location']['lng']; // get ing for json
}
答案 0 :(得分:2)
您不应在整个网址上使用urlencode
。您应该只在参数上使用它:
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . urlencode($address) . "=%s&sensor=false";
答案 1 :(得分:1)
不要对网址进行urlencode。只是参数。
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . urlencode($address) . "=%s&sensor=false";
答案 2 :(得分:1)
您是否尝试过使用file_get_contents? 如果您需要发送一些额外的参数,请使用上下文选项。