php中利用curl访问接口、上传文件

来源:互联网 发布:青岛seo外链外包 编辑:程序博客网 时间:2024/06/05 03:01

get 方式

//$params = ['sfsf'=>1];//$params_url = $base_url.'?'.http_build_query($params);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $params_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);curl_setopt($ch, CURLOPT_TIMEOUT, 60);$result = curl_exec($ch);curl_close($ch);

post方式

 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $base_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); $result = curl_exec($ch); curl_close($ch);

php版本针对文件上传

  <=5.4 curl上传文件只支持@语法  = 5.5 支持@语法和CURLFile  大于=5.6 只支持CURLFile类

兼容写法

$ch = curl_init();if (class_exists('\CURLFile')) {// 这里用特性检测判断php版本         curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);         $data = array('file' => new \CURLFile(realpath($source)));//>=5.5} else {         if (defined('CURLOPT_SAFE_UPLOAD')) {             curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);         }         $data = array('file' => '@' . realpath($source));//<=5.5} curl_setopt($ch, CURLOPT_URL, $base_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); $result = curl_exec($ch); curl_close($ch); 也可以用curl_file_create(realpath($source))来替代 new \CURLFile(realpath($source)))
原创粉丝点击