陈广安个人网站
会写代码的咸鱼
陈广安个人网站阿里云盘资源
陈广安个人网站网盘资源搜索
“ 梦想还是要有的,万一实现了呢!”
— 马云

CURL用HTTPS协议模拟POST和GET提交,工具函数

创建时间: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证书检测,这个是重点