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,不转义反斜杠
相关推荐
jerryinwuhan38 分钟前
基于各城市站点流量的复合功能比较
开发语言·php
迈巴赫车主1 小时前
Java基础:list、set、map一遍过
java·开发语言
南 阳3 小时前
Python从入门到精通day66
开发语言·python
十八旬4 小时前
快速安装ClaudeCode完整指南
开发语言·windows·python·claude
前进的李工4 小时前
EXPLAIN输出格式全解析:JSON、TREE与可视化
开发语言·数据库·mysql·性能优化·explain
Byron Loong4 小时前
【c++】为什么有了dll和.h,还需要包含lib
java·开发语言·c++
独隅5 小时前
CodeX + Visual Studio Code 联动的全面指南
开发语言·php
坚果派·白晓明5 小时前
【鸿蒙PC三方库移植适配框架解读系列】第一篇:Lycium C/C++ 三方库适配 — 概述与环境配置
c语言·开发语言·c++·harmonyos·开源鸿蒙·三方库·c/c++三方库
爱吃小白兔的猫5 小时前
LPA算法详解:一种近线性时间的图社区发现方法
开发语言·php