我有以下PHP代码:
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $URL);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec ($curl);
echo $html;
以下结果:
KO表示像“http://localhost/index.html”这样的$ URL,当我执行var_dump时返回bool(false)
即使浏览器可以显示http://localhost/index.html也没问题。 我在localhost上运行xampp apache服务器。
我无法弄清问题是什么。任何帮助将不胜感激。
答案 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。请检查一下。
您还可以共享主机文件以获取更多详细信息。