CURL方法封装 与JSON格式返回封装

mac2026-04-13  2

/** * 封装curl的调用接口,post的请求方式 * @param $url * @param $requestString * @param int $timeout * @return bool|mixed */ function doCurlPostRequest($url, $requestString, $timeout = 5, $json=1) { if($url == "" || $requestString == "" || $timeout <= 0){ return false; } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST, true); if($json) { curl_setopt($con, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($requestString) )); } curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false); //信任任何证书 curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false); // 检查证书中是否设置域名,0不验证 curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); $curl_return = curl_exec($con); if(is_bool($curl_return) && $curl_return == false) { return json_encode_ex(ReturnError('CURL错误:'.curl_errno($con).'-'.curl_error($con))); } return $curl_return; } 调用:$return = doCurlPostRequest($request_url, http_build_query($data), 10, 0); /** * 封装curl的调用接口,get的请求方式 * @param $url * @param array $data * @param int $timeout * @return bool|mixed */ function doCurlGetRequest($url, $data = array(), $timeout = 100) { if($url == "" || $timeout <= 0){ return false; } if($data != array()) { $url = $url . '?' . http_build_query($data); } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false); //信任任何证书 curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false); // 检查证书中是否设置域名,0不验证 curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); $curl_return = curl_exec($con); if(is_bool($curl_return) && $curl_return == false) { return json_encode_ex(ReturnError('CURL错误:'.curl_errno($con).'-'.curl_error($con))); } return $curl_return; } 调用:$para = array( 'grant_type' => 'client_credential', 'appid' => $_merchant['appid'], 'secret' => $_merchant['appsecret'], ); $url = 'https://api.weixin.qq.com/cgi-bin/token'; $ret = doCurlGetRequest($url, $para); //返回格式管理 function return_format($data=array()) { $format=isset($_REQUEST['return_format'])?$_REQUEST['return_format']:''; if(!$format || empty($data)) { return $data; }elseif ($format=='json') { header('Content-Type:application/json; charset=utf-8'); die(json_encode($data,JSON_UNESCAPED_UNICODE)); }elseif($format=="xml") { $xml = "<xml>"; foreach ($data as $key=>$val) { if (is_numeric($val)) { $xml.="<".$key.">".$val."</".$key.">"; } else { $xml.="<".$key."><![CDATA[".$val."]]></".$key.">"; } } $xml.="</xml>"; return $xml; } }
最新回复(0)