在php中使用simplexml_load_file的代理问题

时间:2011-03-31 10:43:26

标签: php simplexml

有人可以帮我解决这个问题吗? 我需要从地址知道php纬度和经度。

我在做:

  

$ address = urlencode('我的地址');

     

$ lat_lng =   使用simplexml_load_file( “http://maps.google.com/maps/api/geocode/xml?address= {$地址}&安培;传感器=假”);

但是我收到了这个警告:

  

消息:simplexml_load_file()   [function.simplexml负荷文件]:   php_network_getaddresses:getaddrinfo   失败:名称暂时失败   分辨率

我想我需要配置代理,所以我改变了这个方式:

  

$ address = urlencode('我的地址');

     

$ ch =   curl_init( “http://maps.google.com/maps/api/geocode/xml?address= {$地址}&安培;传感器=假”);

     

curl_setopt($ CH,   CURLOPT_RETURNTRANSFER,1);

     

curl_setopt($ ch,CURLOPT_PROXY,   “my_proxy);

     

curl_setopt($ ch,CURLOPT_PROXYPORT,   '我的+端口');

     

$ lat_lng =   simplexml_load_string(curl_exec($ CH));

     

curl_close($ CH);

当我拨打curl_exec时似乎被阻止了。

2 个答案:

答案 0 :(得分:1)

首先尝试使用无代理设置,但代理配置可能出错。

function curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_close ($ch);
    return curl_exec($ch);
}

$address = urlencode($address);
$data = curl("http://maps.google.com/maps/api/geocode/xml?address=$address&sensor=false"); 
$lat_lng = simplexml_load_string($data);

答案 1 :(得分:0)

检查您的代码

curl_close ($ch); 

应该是函数内的最后一行