我希望通过php脚本获得雅虎的祸患。
我可以从geo.places访问网址'http://query.yahooapis.com/v1/public/yql?q=select *,其中text =“NewYork”& format = json'并获取json文件在我的浏览器中。但是当我使用curl时,它返回null。
这就是代码。
public function getwoeid(){
$ch = curl_init();
$url = 'http://query.yahooapis.com/v1/public/yql?q=select * from geo.places where text="'.$this->cityname.'"&format=json';
//echo $url;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data=curl_exec($ch) or die($this->returnerror());
curl_close($ch);
$array = json_decode($data, true);
return $array;
}
当我尝试访问'http://query.yahooapis.com/v1/public/yql?q=select * from geo.places where text =“上海”& format = json'时,curl工作正常
我无法修复它。
任何建议将不胜感激! 感谢。
答案 0 :(得分:3)
您可以使用PHP的file_get_contents()。空格必须由urlencode();
编码$url = 'http://query.yahooapis.com/v1/public/yql?q=select * from geo.places where text="'.$this->cityname.'"&format=json';
$data = file_get_contents(urlencode($url));
$array = json_decode($data, true);
答案 1 :(得分:0)
刚从你的代码中得到答案:
string'不支持HTTP版本
'(长度= 210)
PlaceFinder Web服务仅支持HTTP GET方法。不支持其他HTTP方法。
您无法使用CURL,因为curl可用作POST方法。 请在此处阅读:http://developer.yahoo.com/geo/placefinder/guide/requests.html
答案 2 :(得分:0)
你有一个打开的curl_setopt()。它在下面:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ <------