天天看點

php 模拟post 送出表單

/**
 * 模拟表單送出
 * @param $url 字元串/必填  例子:https://xxxxx/singleQueryRequest.do
 * @param $data array/必填   
 * @return 字元串
 */
function postCurl($url,$data)
{
    $headers = array('Content-Type: application/x-www-form-urlencoded');
    $curl = curl_init(); // 啟動一個CURL會話
    curl_setopt($curl, CURLOPT_URL, $url); // 要通路的位址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_POST, 1); // 發送一個正常的Post請求
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); // Post送出的資料包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定逾時限制防止死循環
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 擷取的資訊以檔案流的形式傳回
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    $result = curl_exec($curl); // 執行操作
    curl_close($curl); // 關閉CURL會話
    if (curl_errno($curl)) {
//          echo 'Errno'.curl_error($curl);//捕抓異常
        $code=-200;
        $msg=curl_error($curl);
    }else{
        $code=200;
        $msg='成功';
        $arr = json_decode($result, true);
    }
    $returndata['code']=$code;
    $returndata['msg']=$msg;
    $returndata['data']=$arr;
    return $returndata;
}