【问题标题】:curl_exec return false after upgrading PHP form 5.4 to 5.5将 PHP 表单 5.4 升级到 5.5 后 curl_exec 返回 false
【发布时间】:2014-07-09 13:00:28
【问题描述】:

我将 php 版本从 5.4 升级到 5.5。升级 php curl_exec 函数后开始返回 false。 php 5.5 中的 curl 选项有什么变化吗?我在文档中找不到任何内容。

        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_POST, 1 ); 
        curl_setopt( $ch, CURLOPT_HEADER, 0 ); 
        curl_setopt( $ch, CURLOPT_URL, self::URL ); 
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $postData );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );  
        curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt( $ch, CURLOPT_TIMEOUT, 90 );
        $data = curl_exec( $ch );

PHP 版本: 5.5.14-2

注意:我在 Vagrant Box 上收到此错误

【问题讨论】:

  • 你使用的是哪个php版本?
  • 我在问题@gries 中添加了 php 版本信息
  • 您是否尝试过使用 true 而不是 1 作为 CURLOP_RETURNTRANSFER 的参数?
  • VargantBox 上是否安装了 curl?是否为 PHP 安装启用?
  • 查看你的 php.ini phpinfo();在一个空的 .php 上,看看是否启用了 Curl。你是在 Windows 上这样做的吗?

标签: php curl php-5.5


【解决方案1】:

我最近也进行了类似的 php 升级,也是在一个 vagrant box 上,当我在这里尝试时,上面的代码 sn-p 似乎可以正常工作。

不是升级后 curl 出现问题,升级是否可能对进入 curl 的数据产生了影响?无论是 self::URL$postData 的构建方式,它们是否仍然包含您希望看到的数据?

如果这些变量仍然如您所料填充,那么您可以通过使用 curl_getinfocurl_errnocurl_error 从 curl 本身获取更多信息,了解 curl_exec 期间出现的问题

$ch = curl_init();
...
$data = curl_exec( $ch );
if (!$data) {
    echo curl_getinfo( $ch ) . "\n";
    echo curl_errno( $ch ) . "\n";
    echo curl_error( $ch ) . "\n";
}

这些行应该为您提供自升级以来出现问题的更详细的报告。

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 2018-06-17
    • 2014-05-06
    • 2016-09-15
    • 2018-09-23
    • 1970-01-01
    • 2012-01-03
    • 2015-05-20
    相关资源
    最近更新 更多