我试着寻找这个,我相信我已经知道了答案,但这是因为我没错,所以我走了......
当调用get_headers
时,我会检索整个文件,即使该函数只返回标题,还是会按预期检索标题而不检索其他内容?
我猜到了最后但是如果我错了,这将导致一些严重的问题.. 另外我注意到有一个全局设置我可以更改为发送HEAD请求而不是默认的GET请求,这就是为什么我要问我的自我真实情况。
也许这个功能是更好的选择? stream_get_meta_data或者他们真的做同样的事情吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
不幸的是你是对的,只需阅读PHP手册:
get_headers()返回一个数组,其中包含服务器发送的标头以响应HTTP请求。
另请参阅示例。
好的,下次我应该更多地关注问题的表述。
是的,如果请求类型设置为GET(标准),您将获得整个内容。您可以将其更改为HEAD,但这不是您想要的。
答案 2 :(得分:0)
获取强>
请求指定资源的表示。请求使用 GET应该只检索数据,不应该有其他影响。 (这个 其他一些HTTP方法也是如此。)W3C已经发布 关于这种区分的指导原则,称“Web应用程序 设计应该通过上述原则告知,也可以通过 相关限制。“
<强> HEAD 强>
要求响应与对应的响应相同 GET请求,但没有响应正文。这很有用 检索在响应标头中写入的元信息,而不是 必须传输整个内容。
Wikipedia/Hypertext_Transfer_Protocol
PHP-doc明确指出普通get_headers()
使用GET请求,但您可以强制它使用HEAD,如下所示:
<?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');
?>