php curl怎么使用post方法

php curl使用post的方法:首先启动一个CURL会话;然后对认证证书来源进行检查;接着从证书中检查SSL加密算法是否存在;最后以POST方式请求https协议接口即可。

php curl怎么使用post方法

本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑

php curl怎么使用post方法?

PHP:CURL分别以GET、POST方式请求HTTPS/http协议接口api

curl以GET方式请求https协议接口

立即学习“PHP免费学习笔记(深入)”;

  function curl_get_https($url){        $curl = curl_init(); // 启动一个CURL会话        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_HEADER, 0);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在        $tmpInfo = curl_exec($curl); //返回api的json对象        //关闭URL请求        curl_close($curl);        return $tmpInfo;    //返回json对象    }

登录后复制

curl以POST方式请求https协议接口

    function curl_post_https($url,$data){ // 模拟提交数据函数        $curl = curl_init(); // 启动一个CURL会话        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);              // 对认证证书来源的检查        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);              // 从证书中检查SSL加密算法是否存在        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求        curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回        $tmpInfo = curl_exec($curl); // 执行操作        if (curl_errno($curl)) {            echo 'Errno'.curl_error($curl);//捕抓异常        }        curl_close($curl); // 关闭CURL会话        return $tmpInfo; // 返回数据,json格式    }

登录后复制

封装的通用的接口

/*** CURL GET || post请求* @desc: GET与post都通用* @author: Sindsun* @email: 2361313833@qq.com* @date: 2019年4月24日上午10:54:31* @param: $url 请求的地址*       $isPostRequest 默认true是GET请求,否则是POST请求*       $data array  请求的参数*       $certParam  array  ['cert_path']    ['key_path']* @return:*/function curl_http($url, $isPostRequest=false, $data=[], $header=[], $certParam=[]){ // 模拟提交数据函数    $curlObj = curl_init(); // 启动一个CURL会话    //如果是POST请求    if( $isPostRequest ){        curl_setopt($curlObj, CURLOPT_POST, 1); // 发送一个常规的Post请求        curl_setopt($curlObj, CURLOPT_POSTFIELDS, http_build_query($data)); // Post提交的数据包    }else{  //get请求检查是否拼接了参数,如果没有,检查$data是否有参数,有参数就进行拼接操作        $getParamStr = '';        if(!empty($data) && is_array($data)){            $tmpArr = [];            foreach ($data as $k=>$v){                $tmpArr[] = $k . '=' . $v;            }            $getParamStr = implode('&', $tmpArr);        }        //检查链接中是否有参数        $url .= strpos($url, '?') !== false ? '&' . $getParamStr : '?' . $getParamStr;    }    curl_setopt($curlObj, CURLOPT_URL, $url); // 要访问的地址    //检查链接是否https请求    if(strpos($url, 'https') !== false){        //设置证书        if( !empty($certParam) && isset($certParam['cert_path']) && isset($certParam['key_path']) ){            curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查            curl_setopt($curlObj, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在            //设置证书            //使用证书:cert 与 key 分别属于两个.pem文件            curl_setopt($curlObj, CURLOPT_SSLCERTTYPE,'PEM');            curl_setopt($curlObj, CURLOPT_SSLCERT, $certParam['cert_path']);            curl_setopt($curlObj, CURLOPT_SSLKEYTYPE,'PEM');            curl_setopt($curlObj, CURLOPT_SSLKEY, $certParam['key_path']);        }else{            curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查            curl_setopt($curlObj, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在        }    }    // 模拟用户使用的浏览器    if(isset($_SERVER['HTTP_USER_AGENT'])){        curl_setopt($curlObj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);    }    curl_setopt($curlObj, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    curl_setopt($curlObj, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    curl_setopt($curlObj, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环    curl_setopt($curlObj, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    curl_setopt($curlObj, CURLOPT_HTTPHEADER, $header);   //设置头部    curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    $result = curl_exec($curlObj); // 执行操作    if ( curl_errno($curlObj) ) {        $result = 'error: '.curl_error($curlObj);//捕抓异常    }    curl_close($curlObj); // 关闭CURL会话    return $result; // 返回数据,json格式}

登录后复制

说明 :前提是打开php的curl开关和服务器的ssl_module,不然不能正常使用哦。

推荐学习:《PHP视频教程》

以上就是php curl怎么使用post方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2511367.html

(0)
上一篇 2025年3月5日 14:31:58
下一篇 2025年2月18日 06:50:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何解决php curl ssl证书错误问题

    php curl ssl证书错误的解决办法:1、在代码中加入“curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);”;2、添加“cacert.pem”文件路径并重启web服务器即可。 本文操作环境…

    2025年3月5日
    200
  • php怎么实现点击加载更多

    php实现点击加载更多的方法:首先新建index.php并引入jQuery库;然后新建“connect_sql.php”;最后修改index.php里的js脚本即可。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 …

    2025年3月5日
    200
  • php删除数组中的空值

    php删除数组中的空值的方法:1、通过foreach或者while去除数组中的空值元素;2、通过array_filter函数去除数组中的空值元素。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 php怎么删除数组中…

    2025年3月5日
    200
  • php链接mongodb失败怎么办

    php链接mongodb失败的解决办法:首先建立一个root role的账号;然后建立一个userAdmin;接着建立数据库连接账号;最后使用MongoClient连接即可。 本文操作环境:Windows7系统、PHP7.1版,DELL G…

    2025年3月5日
    200
  • php 二维数组怎么增加元素

    在php中可以通过“array_walk()”函数给所有数组添加同样的字段元素,代码实现语句如“array_walk($list, function (&$value, $key, $arr) {…}”。 本文操作环境:…

    2025年3月5日
    200
  • php如何实现泛解析

    php实现泛解析的方法:1、泛解析域名到服务器IP;2、在IIS里面创建一个空主机头的站点;3、通过PHP系统变量“$_SERVER[”HTTP_HOST’]”获取当前访问的域名;4、根据当前访问的域名获取到用户名。…

    2025年3月5日
    200
  • php秒数怎么转换时长

    php秒数转换时长的方法:1、通过“gmstrftime”函数进行24小时内的秒数转换;2、通过“changeTimeType”方法进行超过24小时的秒数转换。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 php…

    2025年3月5日
    200
  • php 未定义变量报错怎么办

    php未定义变量报错的解决办法:1、初始化变量进行赋值;2、加@符号来对错误进行抑制,代码如“$sid = @$_POST[‘sid’];”。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 …

    2025年3月5日
    200
  • php怎么删除空文件夹

    php删除空文件夹的方法:1、遍历目录及子目录;2、使用scandir判断目录是否为空,为空则使用“rmdir”删除空文件夹即可。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 php怎么删除空文件夹? php 删…

    2025年3月5日
    200
  • php变量定义的方法有哪些

    php变量定义的方法:1、使用“define(name,value,case_insensitive)”语句;2、使用“$变量名 = 值;”语句;3、使用“static $变量名 = 值;”语句;4、使用“$$变量名 = 值;”语句等等。 …

    2025年3月5日
    200

发表回复

登录后才能评论