概念描述
CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,可以使用cURL实现Get和Post请求的方法。
应用场景
在开发中服务端调用API 时,经常用到向第三方API发起GET 或 POST 请求,然后得到返回结果,有可能是 json 或者 xml ,甚至 我们需要配置一些HTTP 协议 头信息一起发起请求。这时候就需要用到 cURL 。 比如、天气预报借口、微信接口、支付接口等。
函数代码
/**
* [cUrl cURL(支持HTTP/HTTPS,GET/POST)]
* @author qiuguanyou
* @copyright 烟火里的尘埃
* @version V1.0
* @date 2017-04-12
* @param [string] $url [请求地址]
* @param [Array] $header [HTTP Request headers array('Content-Type'=>'application/x-www-form-urlencoded')]
* @param [Array] $data [参数数据 array('name'=>'value')]
* @return [type] [如果服务器返回xml则返回xml,不然则返回json]
*/
public static function cUrl($url,$header=null, $data = null){
//初始化curl
$curl = curl_init();
//设置cURL传输选项
if(is_array($header)){
curl_setopt($curl, CURLOPT_HTTPHEADER , $header);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){//post方式
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
//获取采集结果
$output = curl_exec($curl);
//关闭cURL链接
curl_close($curl);
//解析json
$json=json_decode($output,true);
//判断json还是xml
if ($json) {
return $json;
}else{
#验证xml
libxml_disable_entity_loader(true);
#解析xml
$xml = simplexml_load_string($output, 'SimpleXMLElement', LIBXML_NOCDATA);
return $xml;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。