【问题标题】:Curl not executing even after enabling it in PHP.INI file即使在 PHP.INI 文件中启用 Curl 也不会执行
【发布时间】:2017-01-26 10:50:13
【问题描述】:

我正在使用以下代码来执行 curl。但运行后它不会产生输出。我确定我已经通过删除';'在 php.ini 中启用了 curl。还尝试了 phpinfo();这也表示 curl 已启用。不过,我的代码还是不行!甚至没有错误作为输出。

<?php
  ini_set('display_errors', 1);
  ini_set('display_startup_errors', 1);
  error_reporting(E_ALL);
  $token = ""; //token from fb
  $url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$token;
  $ch = curl_init($url);
  $jsonData = '{
      "recipient":{
          "id":"1250896051638221"
      },
      "message":{
          "text":"5"
      }
  }';
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  $result = curl_exec($ch);
  curl_close($ch);
  print_r($result);
?>

我正在使用带有 XAMPP (php7) 的 Windows 机器(Windows 10)

【问题讨论】:

  • 您是从 cli 运行脚本吗?它可能有不同的配置。或者当$result 为假时尝试curl_error($ch)
  • curl_exec($ch) curl_error 返回一个包含当前会话的最后一个错误的字符串之后
  • 不要使用 print_r(如果值为 false,它不会给你任何输出)——使用 var_dump。
  • 看起来 curl/php 无法访问 CA 文件。 phpinfo() 中的 curl 部分向您展示了什么? facebook 证书很好,所以
  • 您不需要将CURLOPT_RETURNTRANSFER 也设置为true 吗?

标签: php curl php-ini


【解决方案1】:

终于自己找到了解决方案。只需关闭 ssl 验证

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多