Localhost URL在浏览器中工作,但返回PHP curl_exec的bool(false)

时间:2011-01-05 13:59:03

标签: php curl

我有以下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服务器。

我无法弄清问题是什么。任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

如果这不是问题,那么请尝试执行curl,然后输入类似的内容:

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

你会看到你的卷曲执行过程中失败了。 更多信息:curl_getinfo curl_errno curl_error

答案 3 :(得分:0)

尝试使用

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

要了解最新情况,希望这会有所帮助

答案 4 :(得分:0)

这可能是:

卷曲的IPV6问题:

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

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