Php 无法打开流:HTTP请求失败!HTTP/1.0 400错误请求

Php 无法打开流:HTTP请求失败!HTTP/1.0 400错误请求,php,json,google-maps,Php,Json,Google Maps,这是我用来查找地点纬度和经度的代码: 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]['

这是我用来查找地点纬度和经度的代码:

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']);
}
但是,它始终返回此警告:

无法打开流:HTTP请求失败!HTTP/1.0 400错误请求

如果我在一个简单的过程中使用上面的代码,它可以正常工作,但在函数中不能


注意:我尝试了产生相同结果的
curl\u init()…
方法?

不是对整个URL进行编码,而是对地址部分进行编码。下面的代码可以正常工作

$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']);

您应该在文件中使用
urlencode
获取内容,而不是
urlencode
您在
$url
中使用了错误的
变量
请检查
变量
名称
$add
$address