我在我的网站上下载了使用@get_headers来检查文件是否存在以及检索Content-Length(文件大小)元数据的文件。我最近将下载文件移到我的CDN,因为我注意到下载速度提高了50%,但在移动之后我注意到移动文件后我的CDN使用量从每月5GB大幅增加到120GB +。
我想知道@get_headers是否下载了完整的文件来检索元数据,还是在不下载完整文件的情况下获取元数据?
如果@get_headers确实下载了完整文件来检索元数据还有其他解决方案吗?
由于
答案 0 :(得分:3)
它使用GET,这就是你所谓的"完整文件"。你想要做的是使用HEAD请求。这是函数的PHP页面注释中的documented:
<?php
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = get_headers('http://example.com');