调整版PHP的CURL类(POST、GET、PUT、DELE大屏查看

发布于:2017年11月15日 已被阅读

调整版PHP的CURL类(POST、GET、PUT、DELETE)

因为经常用到所以研究了下重新自己写了个比较完整的,至少满足自己平常的需求。



[php] view plain copy

  1.     /** 

  2.      * @param $URL 请求链接 

  3.      * @param null $data 数据 array() string 

  4.      * @param string $type 请求类型 POST GET PUT DELETE 

  5.      * @param string $headers 头部信息 

  6.      * @param string $data_type 返回数据类型 默认为json 

  7.      * @return mixed 

  8.      */  

  9.     function callInterfaceCommon($URL,$data=null,$type='POST',$headers="",$data_type='json'){  

  10.         $ch = curl_init();  

  11.         //判断ssl连接方式  

  12.         if(stripos($URL'https://') !== false) {  

  13.             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  

  14.             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  

  15.             curl_setopt($ch, CURLOPT_SSLVERSION, 1);  

  16.         }  

  17.         $connttime=300; //连接等待时间500毫秒  

  18.         $timeout = 15000;//超时时间15秒  

  19.   

  20.         $querystring = "";  

  21.         if (is_array($data)) {  

  22.             // Change data in to postable data  

  23.             foreach ($data as $key => $val) {  

  24.                 if (is_array($val)) {  

  25.                     foreach ($val as $val2) {  

  26.                         $querystring .= urlencode($key).'='.urlencode($val2).'&';  

  27.                     }  

  28.                 } else {  

  29.                     $querystring .= urlencode($key).'='.urlencode($val).'&';  

  30.                 }  

  31.             }  

  32.             $querystring = substr($querystring, 0, -1); // Eliminate unnecessary &  

  33.         } else {  

  34.             $querystring = $data;  

  35.         }  

  36.   

  37.        // echo $querystring;  

  38.         curl_setopt ($ch, CURLOPT_URL, $URL); //发贴地址  

  39.         //设置HEADER头部信息  

  40. //        if($headers!=""){  

  41. //            curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);  

  42. //        }else {  

  43. //            curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: text/json'));  

  44. //        }  

  45.         curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);//反馈信息  

  46.         curl_setopt ($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); //http 1.1版本  

  47.   

  48.         curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT_MS, $connttime);//连接等待时间  

  49.         curl_setopt ($ch, CURLOPT_TIMEOUT_MS, $timeout);//超时时间  

  50.   

  51.         switch ($type){  

  52.             case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break;  

  53.             case "POST": curl_setopt($ch, CURLOPT_POST,true);  

  54.                 curl_setopt($ch, CURLOPT_POSTFIELDS,$querystring);break;  

  55.             case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");  

  56.                 curl_setopt($ch, CURLOPT_POSTFIELDS,$querystring);break;  

  57.             case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  

  58.                 curl_setopt($ch, CURLOPT_POSTFIELDS,$querystring);break;  

  59.         }  

  60.         $file_contents = curl_exec($ch);//获得返回值  

  61.        // echo time().'<br>';  

  62.         $status = curl_getinfo($ch);  

  63.         //dump($status);  

  64.         curl_close($ch);  

  65.         if($data_type=="json"||$data_type=="JSON")  

  66.         {  

  67.             return json_encode($file_contents);  

  68.         }else  

  69.         {  

  70.             return $file_contents;  

  71.         }  

  72.   

  73.   

  74.     }  




版权声明:不能随便乱复制不然我会生气的,我生气了我自己都害怕我自己,有需要讨论的可以加我扣扣:377-47-3611


最新发布
linux下svn提交忽略某些文件... (173)
使用批处理来批量更新、提交SVN... (136)
linux查看目录文件大小命令 (145)
linux tar打包压缩排除某个... (134)
Linux tar压缩和解压 (192)
SVN子命令add用法浅析 (130)
热门博文
网友FBI探案:马蓉iPad惊人发现... (43345)
霍金携手俄罗斯富豪耗资1亿美元寻找外... (4747)
如何才能查看PHP内置函数源代码... (1209)
微信支付开发当前URL未注册的解决方... (573)
《谁为爱情买单》中的经典面试 ... (441)
让虚拟主机也用上SVN:适用于个人的... (395)
精华博文
[推荐]Centos7 安装配置 SVN (159)
easyswoole框架安装 (174)
php开启pecl的支持(推荐) (157)
1-10个恋爱表现:男朋友爱你程度到... (164)
女生喜欢你的10个程度,到第六个就可... (141)
Eclipse 没有Server选项... (211)
友情链接
我来忙 (110)