PHP通过CURL获取远程文件header头信息

使用CURL方法获取远程文件header头信息,与内置函数get_headers不同的是,这个方法不用完整下载文件,只是下载头部信息,速度理论会快一些。

public function getRemoteFileHeaders($url)
    {
    $options = array(
        CURLOPT_HEADER => true,
        CURLOPT_NOBODY => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_AUTOREFERER => true,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTPHEADER => array('Accept: */*', 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', 'Connection: Keep-Alive')
    );
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $header = curl_exec($ch);
    $ret = curl_errno($ch);
    $error = curl_error($ch);
    curl_close($ch);
    if ($ret === 0) {
        $head = array();
        $headArray = explode("\r\n", trim($header));
        $first = array_shift($headArray);
        preg_match("#HTTP/[0-9\.]+\s+([0-9]+)#", $first, $code);
        $head['code'] = intval($code[1]);
        foreach ($headArray as $v) {
        $arr = explode(':', $v, 2);
        $head[trim($arr[0])] = trim($arr[1]);
        }
        return $head;
    } else {
        return $error;
    }
}

 

Python request urllib 获取远程文件大小

Python request urllib 获取远程文件大小
有两个方法都可以获取文件大小
第一种使用requests库

import urllib
import requests

url=r'https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2020.exe'

download=requests.get(url)
print(download.headers['content-length'])

 


这个方法可以取到文件大小,但是缺点在于,首先会下载文件.

第二种使用urllib库

import urllib
import requests

url=r'https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2020.exe'

download=urllib.request.urlopen(url)
print(download.headers['content-length'])

本方法可以不下载文件,直接获取文件大小

posted on 2021-10-26 19:49  神奇的旋风  阅读(1243)  评论(0编辑  收藏  举报

导航