【问题标题】:Get download size of the webpage获取网页的下载大小
【发布时间】:2018-02-19 14:52:30
【问题描述】:

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

此代码的问题是,如果站点有 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>');

【问题讨论】:

    标签: php curl web webpage


    【解决方案1】:

    您是否使用 HTTPS 不应影响对 curl_getinfo 的任何后续调用。

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

    如果你指定

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    

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

    【讨论】:

    • $url = 'facebook.com'; $curl = curl_init($url); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $subject = curl_exec($curl); //获取页面的下载大小 print("下载大小:" . curl_getinfo($curl,CURLINFO_SIZE_DOWNLOAD) .'
      ');
    • 不确定还要添加什么 - 您的代码对我来说很好用。可能值得检查您的服务器是否确实具有 HTTP 和 HTTPS 流量的出站网络访问权限。您可以致电echo curl_error($curl) 获取更多信息
    • 谢谢.. 它在服务器上工作正常,我的本地主机出了问题
    猜你喜欢
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2011-06-10
    • 1970-01-01
    • 2013-06-29
    • 2012-06-15
    相关资源
    最近更新 更多