PHP中使用curl实现GET请求

PHP中使用curl实现GET请求

陌路离殇
2024-10-26 / 0 评论 / 10 阅读 / 正在检测是否收录...
function http_curl_get($url,$hosts,$referer){
    //生成随机IP
    $cip = mt_rand(11, 191) . "." . mt_rand(0, 240) . "." . mt_rand(1, 240) . "." . mt_rand(1, 240);
    //函数初始化
    $curl = curl_init();
    //这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
    curl_setopt($curl, CURLOPT_URL, $url);
    //如果你想把一个头包含在输出中,设置这个选项为一个非零值。
    curl_setopt($curl, CURLOPT_HEADER, 0);
    //设置返回值不直接输出,例如返回xml格式,会将xml原样输出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //检查服务器SSL证书中是否存在一个公用名
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    //设为0表示不检查证书。设为1表示检查证书中是否有CN(common name)字段。设为2表示在1的基础上校验当前的域名是否与CN匹配
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    //可解压缩gzip、deflate等压缩文件
    curl_setopt($curl, CURLOPT_ENCODING, '');
    //浏览器UA
    curl_setopt($curl,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
    //设置$headers
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Host:'.$hosts,'X-FORWARDED-FOR:'.$cip]);
    //设置REFERER
    curl_setopt($curl,CURLOPT_REFERER,$referer);
    //跟踪爬取重定向页面
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    //设置连接超时时间,单位是秒
    curl_setopt($curl, CURLOPT_TIMEOUT, 5);
    //判断错误并输出
    if(curl_errno($curl)){
        echo 'Error:' . curl_error($curl);
    }else{
        $data = curl_exec($curl);
    }
    curl_close($curl); 
    //返回数据
    return $data;
}

本文共1108个字符,其中有 194 个汉字,平均阅读时长 ≈ 4分钟
0

打赏

海报

正在生成.....

评论

博主关闭了所有页面的评论