虽然我不认为这是可能的,但它是一种无需下载即可获得页面大小的方法吗?(这看起来很愚蠢,但无论如何我想在这里问它)
您可以卷曲页面并获取它的大小,但我不想对页面进行 dl,而且带有 text/html 的标题中也没有什么有趣的。
Content-Length
从页眉查询属性。
使用HEAD
HTTP 方法而不是GET
:
HEAD 方法与 GET 相同,只是服务器不能在响应中返回消息体。响应 HEAD 请求的 HTTP 标头中包含的元信息应该与响应 GET 请求发送的信息相同。此方法可用于获取有关请求所隐含的实体的元信息,而无需传输实体主体本身。
即使发出 HEAD 请求也不能保证您将在输出中获得内容长度。自己检查一下:
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
var_dump(get_headers("http://www.stackoverflow.com", 1));
var_dump(get_headers("http://www.google.com", 1));
var_dump(get_headers("http://php.net/", 1));
我认为最好的选择仍然是使用 curl 去 dl 页面,然后查看页面的大小(纯文本)是多少