一、curl简单介绍
curl 是一个利用URL语法规定来传输文件和抓取数据的工具,作为后台开发,一般在项目接口对接中用的比较频繁,可以通过get请求或者post请求抓取json数据或者xml数据。
二、php建立curl请求的基本步骤
①初始化curl
curl_init()
②设置curl的属性
curl_setopt(),有一长串cURL参数可供设置,它们能指定URL请求的各个细节
③执行并获取结果集
curl_exec()
④释放句柄
curl_close()
三、自己封装的常用到的几个方法
<1>拼接url
function getUrl($url,$arr){
foreach($arr as $key=>$val){
$url.=$key.'='.$val.'&';
}
$url = substr($url,0,-1);
return $url
}
<2>get方式获取数据
function curl_get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); //抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
<3>post方式获取数据
function curl_post($url,$post)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
<4>签名生成
function getSign($arr,$miyao)
{
$str = '';
ksort($arr);
foreach($arr as $key=>$val){
$str .=$key.'='.$val.'&';
}
$str.='key='.$miyao;
//return $str;
return strtoupper(md5($str));
}