【问题标题】:cURL not working sometimes and gives empty resultcURL 有时不起作用并给出空结果
【发布时间】:2015-08-20 09:14:54
【问题描述】:

我使用 cURL 从另一个网站获取数据。有时显示数据,有时显示空结果

这是我的代码

函数 get_data($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); $agent=$_SERVER["HTTP_USER_AGENT"]; curl_setopt($ch,CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); $data = curl_exec($ch); curl_close($ch); 返回$数据; } $returned_content = get_data('www.example.com'); 回声 $returned_content;

【问题讨论】:

  • 尝试使用curl_error($ch);php.net/curl_error检查失败时会发生什么
  • 对我来说工作得很好,也许你连接有问题。
  • 可能与您请求的页面有关,但您可以尝试此功能,因为它有一些错误处理:geneticcoder.blogspot.com/2015/02/curl-function-for-php.html
  • 尝试在echo $returned_content之后添加exit;
  • 顺便说一句 www.example.com 不是 URL,您缺少协议。

标签: php curl php-curl


【解决方案1】:

可能是你从 curl_init 调用了太多的连接到一个 IP 地址,所以服务器阻塞了连接并导致开/关错误。

【讨论】:

    【解决方案2】:

    没有收到任何内容的回复可能是由于许多不同原因中的一个或多个,您需要弄清楚是哪一个。

    1. 在执行传输后在您的代码中使用curl_error($ch),以查看 curl 是否告诉您问题。

    2. 调查响应标头。 HTTP 传输可以成功并且不返回任何错误,但可能只响应 HTTP 标头而根本没有正文。然后,HTTP 标头可能包含有关原因的线索。也许这是您应该遵循的重定向,也许它需要 HTTP 身份验证,或者服务器指示临时服务器故障。

    【讨论】:

      【解决方案3】:

      Curl in PHP returns null on AWS EC2 instance

      我遇到了类似的问题,我通过确保 PHP5 和 Apache2 文件夹中的 php.ini 文件中的版本和设置相同来修复它。如果不是,那么 Apache2 会尝试执行 php.ini 设置中设置的版本。还要确保安装了 PHP5-libcurl。它也很重要。

      【讨论】:

        【解决方案4】:

        间歇性故障可能是由于 DNS 服务器不稳定,即使不是,您仍然可以从使用 Google 的 DNS 服务器中受益。 见:https://developers.google.com/speed/public-dns/docs/using

        【讨论】:

        • 查找在本地缓存。对于对同一域的每个请求,您不会每次都联系 DNS 服务器。这就是为什么使用 TTL 进行查找的原因。出于隐私原因,我也怀疑使用 Google 的 DNS 通常会更好。
        【解决方案5】:

        解决方案

        确保没有任何变量或 url 空间。像“$user_name = "Lokman Hosen"”。你必须给 urldecode "$user_name = "Lokman_Hosen"" 或 "$user_name = "Lokman%20Hosen""。你可以使用

        urldecode()
        

        删除空间的功能。现在 cURL 不允许任何空间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多