我实际上正在使用Flickr api。我创建了我的Url请求,并将其发送到file_get_contents。一切都很好,但今天一切都坏了!
当我在浏览器上直接使用请求时,一切正常,但当我使用文件获取内容或Curl时,它会返回一个空变量。
这是我的代码的例子:
$flickr_result = file_get_contents($request);
或者卷曲:
$cl = curl_init();
curl_setopt($cl, CURLOPT_URL, $url);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec($cl);
在我的php.ini上,allow_fopen_url是“On”。返回值不是false。
我真的不明白,一切都很好。
这就是curl_getinfo print:
[content_type] => text/html; charset=UTF-8
[http_code] => 302
[header_size] => 838
[request_size] => 218
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.312
[namelookup_time] => 0
[connect_time] => 0.015
[pretransfer_time] => 0.015
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.312
[redirect_time] => 0
[certinfo] => Array ( )
[primary_ip] => 69.147.76.173
[primary_port] => 80
[local_ip] => 127.0.0.1
[local_port] => 51014
[redirect_url] => https://flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXX&license=1,2,3,4,5,6&sort=interestingness-desc&text=toto&per_page=50&format=php_serial
[request_header] => GET /services/rest/?method=flickr.photos.search&api_key=XXXXXX&license=1,2,3,4,5,6&sort=interestingness-desc&text=toto&per_page=50&format=php_serial HTTP/1.1 Host: flickr.com Accept: */*
答案 0 :(得分:1)
修改:现在看到您的卷曲输出,您将从API获得302重定向。
你不能使用file_get_content来解决这个问题,但你可以建议curl遵循它自己的重定向:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
你做了多少次请求?也许您已达到配额 - 或者Flickr禁用了您的API密钥。
取自https://www.flickr.com/services/developer/api/:
限制:由于Flickr API非常易于使用,因此也很容易被滥用,这会威胁到依赖Flickr API的所有服务。为了防止这种情况发生,我们限制每个密钥对API的访问。如果您的应用程序在整个密钥上保持每小时3600次查询(这意味着您集成的所有用户的总数),那么您就可以了。如果我们检测到您的密钥滥用,我们将需要使密钥到期或关闭,以便为其他人(包括我们!)保留Flickr API功能。我们还会跟踪其他因素的使用情况,以确保没有API用户滥用系统。