PHP的CURL

使用CURL完成一个请求:

  1. 初始化连接句柄
  2. 设置CURL选项
  3. 执行并获取结果
  4. 释放CURL连接句柄
发送GET请求
function doGetRequest($url,$data,$timeout = 5){
     if($url == "" || $timeout <= 0){
         return false;
     }
     $url = $url.'?'.http_build_query($data);//拼装GET请求字符串
     $c = curl_init((string)$url);
     curl_setopt($c, CURLOPT_HEADER, false);
     curl_setopt($c, CURLOPT_RETURNTRANSFER,true);
     curl_setopt($c, CURLOPT_TIMEOUT, (int)$timeout);
     $body= curl_exec($c);
    if($body === FALSE ){
         echo "CURL Error:".curl_error($c);
     }
     curl_close($c);
     return  $body;   
}
发送post请求
function dolPostRequest($url,$data,$timeout = 5){
     if($url == '' || $timeout <=0){
         return false;
     }
    $requestString=http_build_query($data);
     $c = curl_init((string)$url);
     curl_setopt($c, CURLOPT_HEADER, false);
     curl_setopt($c, CURLOPT_POSTFIELDS, $requestString);
     curl_setopt($c, CURLOPT_POST,true);
     curl_setopt($c, CURLOPT_RETURNTRANSFER,true);
     curl_setopt($c, CURLOPT_TIMEOUT,(int)$timeout);
    $body= curl_exec($c);
    if($body === FALSE ){
         echo "CURL Error:".curl_error($c);
     }
     curl_close($c);
     return  $body;  
}    

CURL_POST为true,标识这个请求是一个POST请求

 会获取当前请求的相关信息

使用curl_getinfo()函数获取CURL请求输出的相关信息

curl_exec($c);
$info = curl_getinfo($c);

 

会得到一个关联数组

  • url:网络地址。
  • content_type:内容编码。
  • http_code:HTTP状态码。
  • header_size:header的大小。
  • request_size:请求的大小。
  • filetime:文件创建的时间。
  • ssl_verify_result:SSL验证结果。
  • redirect_count:跳转计数。
  • total_time:总耗时。
  • namelookup_time:DNS查询耗时。
  • connect_time:等待连接耗时。
  • pretransfer_time:传输前准备耗时。
  • size_uplpad:上传数据的大小。
  • size_download:下载数据的大小。
  • speed_download:下载速度。
  • speed_upload:上传速度。
  • download_content_length:下载内容的长度。
  • upload_content_length:上传内容的长度。
  • starttransfer_time:开始传输的时间表。
  • redirect_time:重定向耗时。

 

posted @ 2016-10-25 09:41  慕尘  阅读(233)  评论(0编辑  收藏  举报