获取网页的下载大小

Get download size of the webpage

我有获取网页大小的代码。

此代码的问题是,如果网站有 HTTPS,它不会返回页面大小

如何在php

中获取URL或网页的总大小
$url = 'facebook.com';        
$curl = curl_init($url);       
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);    
$subject = curl_exec($curl);  
print("Download size: " . curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD) .'<br>');

无论您是否使用 HTTPS,都不应该影响对 curl_getinfo.

的任何 follow-up 调用

我怀疑这里的问题是您没有指定 Curl 应该遵循重定向 - 实际上获取 facebook.com returns 301 重定向到 https://facebook.com/。除非您告诉 Curl 它应该跟随它,否则它会在第一个请求后放弃。在这种情况下,因为响应只是重定向 header,body 为空,因此您的大小为 0 字节。

如果您指定

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

然后它将跟随重定向,您将获得正确的文件大小(至少对我来说是 182227)。