zoukankan      html  css  js  c++  java
  • 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:重定向耗时。
  • 相关阅读:
    树状数组和线段树
    N皇后问题(函数式编程与过程式)
    单例模式
    BitSet
    蓄水池抽样问题
    关于动态规划的一些感想
    53最大子序和
    5最长回文子串
    139单词拆分
    91.解码方法
  • 原文地址:https://www.cnblogs.com/baby123/p/5995499.html
Copyright © 2011-2022 走看看