【问题标题】:Localhost URL works in browser but returns bool(false) for PHP curl_exec本地主机 URL 在浏览器中有效,但为 PHP curl_exec 返回 bool(false)
【发布时间】:2014-02-24 23:09:17
【问题描述】:

我有以下 PHP 代码:

$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $URL);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec ($curl);

echo $html;

结果如下:

即使浏览器可以毫无问题地显示http://localhost/index.html。 我在 localhost 上运行 xampp apache 服务器。

我无法弄清楚问题出在哪里。任何帮助将不胜感激。

【问题讨论】:

  • 您是否明确地从本地主机运行此代码?
  • @fire 是的,我在 localhost 上运行代码。
  • 尝试127.0.0.1 而不是localhost。如果这有效,那就是 DNS 问题。如果它不起作用,可能还有其他一些事情。尝试通过设置 CURLOPT_HEADER 选项来检查 CURL 标头...此外,将 CURLOPT_FAILONERROR 设置为 false 以进行检查...
  • 你试过 curl_error() 吗? php.net/manual/en/function.curl-error.php
  • 其实网址中不应该有任何反斜杠,正斜杠是正确的

标签: php curl


【解决方案1】:

您应该确保您的 Apache 侦听正确的接口。我曾经在 Vit 机器上遇到过这个问题:Apache (XAMP) 只在 IPv4 上侦听,但在 Vista 上,“localhost”默认解析为 IPv6 地址。

要禁用 IPv6 地址,请编辑您的 %system32%\drivers\etc\hosts 文件并删除 ::1 行。

【讨论】:

    【解决方案2】:

    cURL 可能在幕后将请求转换为 IPv6。除了 xrstf 建议的解决方案之外,您可以简单地尝试使用 127.0.0.1 而不是 localhost 来强制 IPv4 连接。

    【讨论】:

      【解决方案3】:

      一个可能的事情是防火墙问题。默认情况下,Curl 尝试使用端口 1080,这可能未在您的 localhost/路由器/ISP 上打开。

      如果没有问题,请在执行 curl 后尝试,输入如下内容:

      echo curl_getinfo($ch) . '<br/>';
      echo curl_errno($ch) . '<br/>';
      echo curl_error($ch) . '<br/>';
      

      您将看到在 curl 执行期间失败的原因。 更多信息:curl_getinfocurl_errnocurl_error

      【讨论】:

        【解决方案4】:

        尝试使用

        if(curl_exec($ch) === false)
        {
            echo 'Curl error: ' . curl_error($ch);
        }
        else
        {
            echo 'Operation completed without any errors';
        }
        // ( see : www.php.net/curl_error )
        

        要看看发生了什么,希望这会有所帮助

        【讨论】:

          【解决方案5】:

          这可能是:

          卷曲的 IPV6 问题:

          curl 配置为: 启用 c-ares 启用 ipv6 本地系统禁用了 ipv6。请检查一下。

          您还可以共享主机文件以获取更多详细信息。

          【讨论】:

            猜你喜欢
            • 2017-10-24
            • 1970-01-01
            • 1970-01-01
            • 2019-02-07
            • 2012-11-09
            • 2020-08-21
            • 2011-07-11
            • 2022-01-02
            • 1970-01-01
            相关资源
            最近更新 更多