我知道这个问题已被问过数百万次,但请在标记为重复或结束之前,请务必花点时间了解我的问题。
所以我使用以下代码。出于某种原因,它在第一次运行content-length
的代码EXCEPT时获得了所有正确的标头信息。第二次运行代码时,它实际上是正确的。我正在从Facebook API检索图像,如果这改变了什么。
function remote_filesize($url) {
$data = get_headers($url, 1);
if(isset($data['Content-Length'])) {
return (int) $data['Content-Length'];
}
else {
return -1;
}
}
修改
当你没有任何解释而被投票时,必须要爱。我个人认为应该要求提供理由。
无论如何,这仍然是一个问题,但是如果有人在谷歌搜索这需要一个获取远程文件大小的解决方案,我建议使用PHP文档http://php.net/manual/en/function.filesize.php#114952
中的这个很棒的片段答案 0 :(得分:0)
听起来像服务器缓存问题。
因此,您可能必须发出完整的GET请求,而不仅仅是HEAD请求。
另外,也许可以检查不同的外壳 - '内容长度:' - 小写。