发新话题
打印

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

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;
    }
}

TOP

发新话题