CURL

作者: 小小小胡 | 来源:发表于2017-07-31 16:21 被阅读10次

    //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
    function curl_request($url,$post='',$cookie='', $returnCookie=0)
    {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
    curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
    if($post) {
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
    }
    if($cookie) {
    curl_setopt($curl, CURLOPT_COOKIE, $cookie);
    }
    curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    if (curl_errno($curl)) {
    return curl_error($curl);
    }
    curl_close($curl);
    if($returnCookie){
    list($header, $body) = explode("\r\n\r\n", $data, 2);
    preg_match_all("/Set-Cookie:([^;]*);/", $header, $matches);
    $info['cookie'] = substr($matches[1][0], 1);
    $info['content'] = $body;
    return $info;
    }else{
    return $data;
    }
    }
    第一步 $ch = curl_init(); //这里可以传入地址
    第二步 curl_setopt($ch,$opt,$val); //设置选项
    curl_setopt_array($curl,$options); //批量的设置选项
    1,CURLOPT_URL //设置地址
    2,CURLOPT_RETURNTRANSFER //是否返回文件流而不是直接输出,默认是直接输出的,设置是true 的话表示返回文件流,默认false。直接输出
    3,CURLOPT_HTTPHEADER,设置头信息
    $header = [
    'Host:www.maiziedu.com',
    'Origin:http://www.maiziedu.com',
    'Referer:http://www.maiziedu.com/',
    'User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',
    ]
    4,CURLOPT_COOKIESESSION,true //启用cookie
    CURLOPT_COOKIEFILE,$cookiefile //保存cookie的文件
    CURLOPT_COOKIEJAE,$cookiefile
    CURLOPT_COOKIE,session_name().'='.session_id()
    [cURL 函数]
    curl_getinfo(); // 获取一个cURL连接资源句柄的信息
    [curl_errno] — 返回最后一次的错误代码
    [curl_error()]- 返回当前会话最后一次错误的字符串
    5,CURLOPT_SSL_VERIFYPEER,false//跳过证书的检查,访问https

    cURL文件上传
    $data = ['name'=>'myfile' , 'file'=>'@/home/huyouheng/Pictures/icon.jpg'];
    curl_setopt($curl,CURLOPT_POST,1); //开启POST
    curl_setopt($curl,CURLOPT_POSTFIELDS,$data); //传输数据
    file文件必须是绝对路径,前面必须加上@

    相关文章

      网友评论

          本文标题:CURL

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