PHP curl常见CURLESSLCACERT (60)错误及get,post实例

常见的 CURLE_SSL_CACERT (60) 错误, 解决办法:

https://curl.haxx.se/ca/cacert.pem (opens new window)下载最新的

可直接下载2022 年 3 月 22 日

配置 php.ini 文件,搜索 [curl] ,在下方添加

bash 复制代码
curl.cainfo = "D:\phpStudy\php\php-7.0.12-nts\ext\cacert.pem"

curl post请求

php 复制代码
/**curl中的post请求
  * @param $url  请求地址
  * @param $post 请求参数
  */
function curl_post($url,$post){
      $curl = curl_init();//初始化
      // 设置抓取的url
      curl_setopt($curl, CURLOPT_URL, $url);
      // 设置头文件的信息作为数据流输出
      curl_setopt($curl, CURLOPT_HEADER, false);
      // 设置获取的信息以文件流的形式返回,而不是直接输出。
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
      // 设置post方式提交
      curl_setopt($curl, CURLOPT_POST, true);
      // POST请求参数
      curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
      // https请求 不验证证书和hosts
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
      // 添加头部信息
      curl_setopt($curl, CURLOPT_HTTPHEADER, [
        "Content-Type: application/json",
        "Accept: application/json",
       ]);
      // 执行命令
      $data = curl_exec($curl);
      if (curl_errno($curl)) {
          return curl_error($curl);
      }
      curl_close($curl); //关闭URL请求
      return $data;
}

curl get请求

php 复制代码
/**
  * @param $url  请求地址
  * @return mixed|string
  */
function curl_get($url)
{
    // 初始化
    $curl = curl_init();
    // 设置请求的url
    curl_setopt($curl, CURLOPT_URL, $url);
    // 设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, false);
    // 设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    // 执行命令
    $data = curl_exec($curl);
    if (curl_errno($curl)) {
        return curl_error($curl);
    }
    curl_close($curl); //关闭URL请求
    return $data;
}

有时候使用json_encode传递json数据,参数内容中包含中文,返回值不对的情况传递第二个参数

php 复制代码
json_encode($post, JSON_UNESCAPED_UNICODE);  // 中文不转为unicode ,对应的数字 256

json_encode 另一个常用参数

php 复制代码
json_encode($post, JSON_UNESCAPED_SLASHES);  // 不转义反斜杠,对应的数字 64

json_encode只能传递一个常量,如果同时使用两个则: 256 + 64 = 320

php 复制代码
json_encode($post, 320);  // 中文不转为unicode,不转义反斜杠
相关推荐
一只旭宝32 分钟前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
coder!mq3 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding3 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ3 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大3 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS3 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
quantdash_cc4 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
ydd1001004 小时前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言
半亩码田4 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
Wzx1980125 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker