2011-03-31 46 views
1

有人可以帮我解决这个问题吗? 我需要知道从一个地址的php经度和纬度。代理prob!em使用php中的simplexml_load_file

我做:

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

$ lat_lng = simplexml_load_file(“http://maps.google.com/maps/api/geocode/xml?address= {$ address} & sensor = false”);

,但我得到了这样的警告:

消息:使用simplexml_load_file() [function.simplexml加载文件]: php_network_getaddresses:的getaddrinfo 失败:在名称 解决临时出现故障

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

$ address = urlencode('my address');

$ ch = curl_init(“http://maps.google.com/maps/api/geocode/xml?address= {$ address} & sensor = false”);

curl_setopt($ ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ ch,CURLOPT_PROXY, 'my_proxy);

curl_setopt($ ch,CURLOPT_PROXYPORT, 'my + port');

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

curl_close($ ch);

当我打电话给curl_exec时它似乎被阻止。

回答

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); 
0

检查你的代码

curl_close ($ch); 

应该是函数内的最后一行