PHP中用CURL实现GET和POST请求

  

CURL 发送 GET 请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function curl_get_request($url,$data=null){
    if(is_array($data)){
        $data = http_build_query($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);//不返回头部信息
    if($data!=null){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);//设置Agent
    }
    $data = curl_exec($ch);
    curl_close($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    return $data;
}

 

CURL 发送 POST 请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function curl_post_request($url,$data=null){
    if(is_array($data)){
        $data = http_build_query($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);//不返回头部信息
    curl_setopt($ch, CURLOPT_POST, 1);
    if($data!=null){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
    }
    $data = curl_exec($ch);
    curl_close($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    return $data;
}

 

封装GET和POST请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function curl_request($url,$data=null,$method="GET"){
    if(is_array($data)){
        $data = http_build_query($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);//不返回头部信息
    if(strtolower($method)!='get'){
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    if($data!=null){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
    }
    $data = curl_exec($ch);
    curl_close($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    return $data;
 
}

 

CURL 使用 COOKIE 实现模拟用户登录爬取信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//$cookie cookie文件链接
function curl_request($url,$data=null,$cookie='',$method='GET'){
    if(is_array($data)){
         $data = http_build_query($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    if($method!='GET'){
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    if($data!=null){
         
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
    }
    $cookie_file file_get_contents($cookie);
    curl_setopt($ch, CURLOPT_COOKIE, $cookie_file);
    $data = curl_exec($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    curl_close($ch);
     
    return $data;
}

 

CURL加请求header参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function curl_get_request($url,$data=null,$header=null){
    if(is_array($data)){
        $data = http_build_query($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);//不返回头部信息
    if($data!=null){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);//设置Agent
    }
    if($header!=null){
        /**
             $header = array(
                  'api-key:'.$key,
                  'authorization:'.$authorization,
                  );
        **/
       curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    $data = curl_exec($ch);
    curl_close($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    return $data;
}

 

CURL 发送JSON数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function curl_get_request($url,$data=null){
    if(is_array($data)){
        $data = json_encode($data);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);//不返回头部信息
    if($data!=null){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //结果是否显示出来,1不显示,0显示    
    //判断是否https
    if(strpos($url,'https://')!==false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $UserAgent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
        curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);//设置Agent
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER,
      array(
      'Content-Type: application/json; charset=utf-8',
      'Content-Length:' strlen($data))
      );
         
    $data = curl_exec($ch);
    curl_close($ch);
    if($data === FALSE) 
    
      $data "curl Error:".curl_error($ch);
    
    return $data;
}

 

文章转自:http://www.kaotop.com/it/778896.html

posted @   圆柱模板  阅读(363)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示