Search

与我们合作

我们专注:网站策划设计、网络多媒体传播、网站优化及网站营销、品牌策略与设计
主营业务:网站建设、移动端微信小程序开发、VI设计、网络运营、云产品·运维解决方案

有一个品牌项目想和我们谈谈吗?

您可以填写右边的表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与您取得联系。当然也欢迎您给我们写信或是打电话,让我们听到您的声音

您也可通过下列途径与我们取得联系:

地 址: 深圳.龙岗区大运软件小镇11栋3楼

电 话: 138 2888 4598 / 138 0880 9053

网 址: http://www.appvx.cn

快速提交您的需求 ↓

PHP对CURL函数的封装,支持GET/POST请求

时间:2017-07-12 浏览:3946 编辑:SW 来源:技术博客

因为开发需求,经常要写接口各种各样的请求,所以小编封装了CURL的函数,方便下次使用的时候就不用再次手打,直接复制函数调用就可以了,又方便又省事,废话不多说下面是PHP对CURL函数的封装,支持GET/POST请求和证书验证以及错误信息提示。

代码如下

/**

 * curl 函数

 * @param string $url 请求的地址

 * @param string $type POST/GET/post/get

 * @param array $data 要传输的数据

 * @param string $err_msg 可选的错误信息(引用传递)

 * @param int $timeout 超时时间

 * @param array 证书信息

 * @author 勾国印

 */

function GoCurl($url, $type, $data = false, &$err_msg = null, $timeout = 20, $cert_info = array())

{

    $type = strtoupper($type);

    if ($type == 'GET' && is_array($data)) {

        $data = http_build_query($data);

    }


    $option = array();


    if ( $type == 'POST' ) {

        $option[CURLOPT_POST] = 1;

    }

    if ($data) {

        if ($type == 'POST') {

            $option[CURLOPT_POSTFIELDS] = $data;

        } elseif ($type == 'GET') {

            $url = strpos($url, '?') !== false ? $url.'&'.$data :  $url.'?'.$data;

        }

    }


    $option[CURLOPT_URL]            = $url;

    $option[CURLOPT_FOLLOWLOCATION] = TRUE;

    $option[CURLOPT_MAXREDIRS]      = 4;

    $option[CURLOPT_RETURNTRANSFER] = TRUE;

    $option[CURLOPT_TIMEOUT]        = $timeout;


    //设置证书信息

    if(!empty($cert_info) && !empty($cert_info['cert_file'])) {

        $option[CURLOPT_SSLCERT]       = $cert_info['cert_file'];

        $option[CURLOPT_SSLCERTPASSWD] = $cert_info['cert_pass'];

        $option[CURLOPT_SSLCERTTYPE]   = $cert_info['cert_type'];

    }


    //设置CA

    if(!empty($cert_info['ca_file'])) {

        // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。1需要设置CURLOPT_CAINFO

        $option[CURLOPT_SSL_VERIFYPEER] = 1;

        $option[CURLOPT_CAINFO] = $cert_info['ca_file'];

    } else {

        // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。1需要设置CURLOPT_CAINFO

        $option[CURLOPT_SSL_VERIFYPEER] = 0;

    }


    $ch = curl_init();

    curl_setopt_array($ch, $option);

    $response = curl_exec($ch);

    $curl_no  = curl_errno($ch);

    $curl_err = curl_error($ch);

    curl_close($ch);


    // error_log

    if($curl_no > 0) {

        if($err_msg !== null) {

            $err_msg = '('.$curl_no.')'.$curl_err;

        }

    }

    return $response;

}


使用方法如下:

$url   = '请求地址';

$data = array(

            'phoneNum' => '18614064456',

        );

$json = GoCurl($url, $data, 'POST', $error_msg);


$array = json_decode($json, true);


print_r($array);


本站文章均为深正网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...
GO 欣赏案例
查看经典案例
在线咨询
电话咨询
0755-36630177
返回顶部
在线咨询 获取报价 电话咨询
获取报价
您的称呼:

*

您的电话:

*

您的邮箱:

*

提交 重置
重要的事情,电话里聊

接通客服

不方便的时候线上咨询,在线等哦