2016-07-07 85 views
0

我在我的网站上下载了使用@get_headers检查文件是否存在并检索Content-Length(文件大小)元数据的文件。我最近通过下载文件移动到我的CDN,因为我注意到下载速度提高了50%,但移动后我注意到在移动文件后,我的CDN使用量从每月5GB大幅增加到120GB +。@get_headers是下载完整文件还是仅下载元数据?

我想知道@get_headers下载完整的文件来检索元数据还是不抓取元数据而不下载完整的文件?

如果@get_headers没有下载完整的文件来检索元数据是否有另一种解决方案?

谢谢

回答

3

它使用GET,这就是你所说的“完整文件”。你想要做的是使用HEAD请求。这是documented在功能的PHP页面的评论:

<?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'); 
+0

这只会影响“get_headers”功能吗? –

+0

不会。它会影响每个后续使用默认流上下文的调用。如果你喜欢,你可以将它设置回GET。 – alzee

+0

如果我在一个函数中设置这个函数来请求一个HEAD,它只会在函数中请求HEAD或者它会在我的PHP文件中全局地改变一些东西? –