curl,用法實例

来源:互联网 发布:连通区域图像分割算法 编辑:程序博客网 时间:2024/06/06 13:12

//以post方式提交xml到對應的接口url:

//實例場景(一):微信支付

    public function postXmlCurl($xml,$url,$second=30)


    {       


        // 初始化一個curl會話
        $ch = curl_init();


        //爲一個curl設置會話參數,
        curl_setopt($ch, CURLOPT_TIMEOUT, $second);


        //這裡設置代理,如果有的話
        //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');


        //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);


        //CURLOPT_URL:需要獲取的URL地址(也可以在curl_init()函數中設置)
        curl_setopt($ch,CURLOPT_URL, $url);


        //CURLOPT_SSL_VERIFYPEER :禁用後cURL將終止從服務端進行驗證。使用 CURLOPT_CAINFO 選項設置證書使用 CURLOPT_CAPATH 選項設置證書目錄 如果 CURLOPT_SSL_VERIFYPEER (默認值為2)被啟用, CURLOPT_SSL_VERIFYHOST 需要被設置成 TRUE 否則設置為 FALSE。備註:自cURL 7.10開始默認為 TRUE 。從cURL 7.10開始默認綁定安裝。
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);


        //CURLOPT_SSL_VERIFYHOST:1 檢查服務器SSL證書中是否存在壹個公用名(common name)。譯者註:公用名(Common Name)壹般來講就是填寫妳將要申請SSL證書的域名 (domain)或子域名(sub domain)。2 檢查公用名是否存在,並且是否與提供的主機名匹配。 
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);


        //CURLOPT_HEADER:設置header,啟用時會將頭文件的信息作為數據流輸出。 
        curl_setopt($ch, CURLOPT_HEADER, FALSE);


        //CURLOPT_RETURNTRANSFER:將 curl_exec() 獲取的信息以文件流的形式返回,而不是直接輸出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);


        //CURLOPT_POST:啟用時會發送壹個常規的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的壹樣。
        curl_setopt($ch, CURLOPT_POST, TRUE);


        //CURLOPT_POSTFIELDS:全部數據使用HTTP協議中的"POST"操作來發送。要發送文件,在文件名前面加上@前綴並使用完整路徑。這個參數可以通過urlencoded後的字符串類似'para1=val1&para2=val2&...'或使用壹個以字段名為鍵值,字段數據為值的數組。如果value是壹個數組,Content-Type頭將會被設置成multipart/form-data。 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);


        //運行curl/執行一個curl會話(唯一的參數是curl_init()函數返回的句柄)
        $data = curl_exec($ch);


        //返回结果


        if($data)


        {


            //關閉一個curl會話(唯一的參數是curl_init()函數返回的句柄)
            curl_close($ch);


            return $data;


        }


        else 


        { 


            //返回一個包含當前會話錯誤信息的數字編號
            $error = curl_errno($ch);


            echo "curl出错,错误码:$error"."<br>"; 


            echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>";


            curl_close($ch);


            return false;


        }


    }


====================================================================================================

//實例場景(二):微信登錄

function httpGet($url){
$oCurl =curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
$sContent =curl_exec($oCurl);
$aStatus =curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return $sContent;
}else{
return false;
}
}

0 0
原创粉丝点击