2011-05-11 48 views
0

我应该如何配置cURL从雅虎地图API检索数据?雅虎地图API卷曲设置

下面是当前的代码

curl_setopt($ch, CURLOPT_TIMEOUT, 5000); 
curl_setopt($ch, CURLOPT_URL, $geocodeurl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$data = curl_exec($ch); 

它返回一个400 - 错误请求HTML文件。我检查了$geocodeurl,它是一个有效的XML文件,所以我认为问题必须是cURL选项?


$ geocodeurl是

http://where.yahooapis.com/geocode?appid=** My App ID **&q=Battle%20Creek,MI&gflags=R 
+0

您是否使用URL前面的http://(或https://)?也许你可以分享$ geocodeurl – 2011-05-11 17:35:23

+0

@Topener - 分享 – jisaacstone 2011-05-11 17:43:02

回答

0

OK像往常一样我曾误的问题。 cURL很好,但q=变量没有正确地通过任何种类的urlencode函数。

在我的浏览器中工作,因为Firefox将更改为%20。用cURL你需要更加小心。 。 。 。

1

我写了一个简单的类包装来获取作为php对象的基本地址,这可能会帮助您完成工作!我还添加了谷歌地理编码包装。

回答你的问题,一切都确定了您发布的网址,但是是因为你对你的答复中提到,你应该进行urlencode的PARAMS

$query = $this->url."?appid=".$this->appid."&flags=".$this->format; 
$query .= "&location=".urlencode($address); 

这里是一个链接到我的包装类

https://github.com/mrpollo/Geocoding-API