简体   繁体   中英

failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

This the code I'm using to find the latitude and longitude of place:

function coords($address){
    echo $url="http://maps.googleapis.com/maps/api/geocode/json?address=".$address;
    $json = file_get_contents(urlencode($url));
    $data = json_decode($json, TRUE);

    print_r($data['results'][0]['geometry']['location']['lat']);
    print_r($data['results'][0]['geometry']['location']['lng']);
}

However it always returns this warning:

failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

If I use the above code in a simple procedure it works fine but not in the function.

Note: I have tried the curl_init()... method which produced the same result?

Instead of encoding whole URL just encode the address part. The following code will work fine

$add='jamshoro phase 2';
$url="http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($add);
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
print_r($data['results'][0]['geometry']['location']['lat']);
print_r($data['results'][0]['geometry']['location']['lng']);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM