php 使用 CURL 获取数据

 第一种,POST 和 GET 合并

function http_curl($url, $type = 'get', $data = ''){
  $cl = curl_init();  //初始化
  curl_setopt($cl, CURLOPT_URL, $url);  //设置 cURL 传输选项
  curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);  // 将curl_exec()获取的信息以字符串返回,而不是直接输出。

  curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, false);

  if($type == 'post'){
    curl_setopt($cl, CURLOPT_POST, 1);    //发送 POST 请求,类型为:application/x-www-form-urlencoded
    curl_setopt($cl, CURLOPT_POSTFIELDS, $data);
  }
  $output = curl_exec($cl);  //执行 cURL 会话
  curl_close($cl);
  return $output;
}

第二种 POST 和 GET分开

POST

$url = "http://localhost/web_services.php";
  $post_data = array ("username" => "bob","key" => "12345");  
   $ch = curl_init(); 
   curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // post数据
  curl_setopt($ch, CURLOPT_POST, 1);

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

  // post的变量
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
   $output = curl_exec($ch);
  curl_close($ch); 
   //打印获得的数据
  print_r($output); 

GET

  //初始化
  $ch = curl_init();  
   //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, "http://www.jb51.net");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
   //执行并获取HTML文档内容
  $output = curl_exec($ch); 
   //释放curl句柄
  curl_close($ch); 
   //打印获得的数据
  print_r($output);    

以上方式获取到的数据是json格式的

使用  json_decode($output,true) 可解析为数组;使用 json_decode($output) 可解析为对象

参数说明:

  $url :要请求的url地址,如果是get方式请求,可以把参数直接加到url后面

  $type:请求方式

  $data:post方式请求时携带的参数

curl_init()  初始化一个cURL会话

curl_setopt()  设置一个cURL传输选项

curl_exec()  执行一个cURL会话

curl_close()  关闭一个cURL会话

 

posted @ 2020-01-15 16:16  下页、再停留  阅读(1001)  评论(0编辑  收藏  举报