php curl 替换 get_headers 函数

get_headers

获取远程URL头信息。如果遇到需要设置超时的话, 需要使用

stream_context_set_default(
    array(
        'http' => array(
            'timeout' => 5
        )
    )
);

stream_context_set_default 但是这个函数必须是5.3.0才能使用。
https://www.php.net/manual/zh/function.stream-context-set-default.php

对于 5.3以下的php用户,如何处理呢。必须只能使用 curl 函数啦。而且这个函数非常强大。

php curl

function get_header_curl($url, $time_out_sec=3) {
    if(!function_exists('curl_init')) {
        return false;
    }
    if(empty($url)) {
        return false;
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER,true); // 是否获取 header 头信息
    curl_setopt($ch, CURLOPT_NOBODY, true); // 是否不需要 body 数据。是 true, 否 false 会获取 body 数据
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($ch, CURLOPT_TIMEOUT, $time_out_sec); // 设置cURL允许执行的最长秒数。
    if (($returnData = curl_exec($ch)) === false) {
        return false;
    }
    curl_close($ch);
    if($returnData) {
       $arr = explode("\r\n", $returnData); // 分隔数据为数组数据。
       $arr = array_filter($arr);
       return $arr;
    }
    return false;
}

使用验证

$url = 'https://gallery.1x.com/images/user/dea5fafa877c74b705f4fc6ac9de6c1e-ld.jpg';
var_dump(get_header_curl($url, 1));
var_dump(get_header_curl($url, 3));

你可能感兴趣的:(php curl 替换 get_headers 函数)