curl返回null值

时间:2014-02-21 20:40:12

标签: php json curl

我正在编写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
}

3 个答案:

答案 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? 如果您需要发送一些额外的参数,请使用上下文选项。