Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 686
user36605 Avatar asked Apr 29 '15 13:04

user36605


1 Answers

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']);
like image 127
Kamran Avatar answered Oct 26 '22 13:10

Kamran