创建时间:2017-04-25
CURL利用代码来模拟https协议get提交方式
封装函数
function curlget($data,$url){
//拼接字符串
$newurl = "?";
foreach(array_keys($data) as $value){
//? + 键名 + = + 键值 +&
$newurl.=$value."=".$data[$value]."&";
}
$url=$url.$newurl;//拼接URL
$curl = curl_init();//初始化
curl_setopt($curl,CURLOPT_URL,$url);//设置提交地址,(资源,配置提交地址,地址)
curl_setopt($curl,CURLOPT_HEADER,0);//设置为https提交方式
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//绕过ssl证书检测,这个是重点
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//拿到服务器的返回值
$data = curl_exec($curl);//执行
curl_close($curl);//关闭初始化资源
return json_decode($data,true);//将json数据转为二维数组,不传第二个参数,默认转为对象,第二个参数传true,转为数组
}使用函数
执行test1方法,curl通过get提交到test,然后返回json数组,通过封装函数 将json数据转为数组,test1方法返回data,打印data
public function test(){
$pt = input('get.');
return json($pt);
}
public function test1(){
$arr['name'] = '陈广安';
$arr['age'] = 18;
$url = 'http://tp/index/other/test';
$data = curlget($arr,$url);
var_dump($data);
}CURL利用代码来模拟https协议post提交方式
封装函数
function curlpost($data,$url){
$curl = curl_init();//初始化
curl_setopt($curl,CURLOPT_URL,$url);//设置提交地址,(资源,配置提交地址,地址)
curl_setopt($curl,CURLOPT_POST,true);//设置post提交方式
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//设置post提交方式
curl_setopt($curl,CURLOPT_HEADER,0);//设置为https提交方式
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//绕过ssl证书检测,这个是重点
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//拿到服务器的返回值
$data1 = curl_exec($curl);//执行
curl_close($curl);//关闭初始化资源
return json_decode($data1,true);//将json数据转为二维数组,不传第二个参数,默认转为对象,第二个参数传true,转为数组
}test方法的 get接收变成post接收
public function test(){
$pt = input('post.');
return json($pt);
}
public function test1(){
$arr['name'] = '陈广安';
$arr['age'] = 18;
$url = 'http://tp/index/other/test';
$data = curlget($arr,$url);
var_dump($data);
}这两行可有可无,主要用于https协议提交,一般支付接口都是采用https
curl_setopt($curl,CURLOPT_HEADER,0);//设置为https提交方式
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//绕过ssl证书检测,这个是重点