美文网首页
php curl 替换 get_headers 函数

php curl 替换 get_headers 函数

作者: 百里江山 | 来源:发表于2021-02-26 20:46 被阅读0次

    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 函数

          本文链接:https://www.haomeiwen.com/subject/yluvfltx.html