Php 文件\u获取\u内容-连接超时

Php 文件\u获取\u内容-连接超时,php,Php,大多数情况下,您的服务器可能无法连接到外部资源,例如,由于防火墙限制。file\u get\u contents无法很好地获取远程文件,因此不应使用。它不处理慢速网络连接或重定向,也不返回错误代码。您应该使用curl来获取远程文件 curl\u exec手册中有一个示例:这可能是服务器端问题,可能是您的服务器无法与其他服务器远程通信。您必须与服务器管理员通信 我也遇到了同样的问题,无法使用file_get_contents()下载,但是在同一URL的命令行上使用curl效果很好。结果它尝试通过I

大多数情况下,您的服务器可能无法连接到外部资源,例如,由于防火墙限制。

file\u get\u contents
无法很好地获取远程文件,因此不应使用。它不处理慢速网络连接或重定向,也不返回错误代码。您应该使用
curl
来获取远程文件


curl\u exec
手册中有一个示例:

这可能是服务器端问题,可能是您的服务器无法与其他服务器远程通信。您必须与服务器管理员通信

我也遇到了同样的问题,无法使用file_get_contents()下载,但是在同一URL的命令行上使用curl效果很好。结果它尝试通过IPv6连接,但失败了


我通过在我的内核参数中禁用IPv6解决了这个问题。

…或者Google关闭了,但这似乎不太可能:DBtw,我使用Google只是举个例子,它工作正常,但我想要的链接不工作,那么,如果你用浏览器点击链接会发生什么呢?是否愿意共享一个URI,而该URI不适用于我们复制错误?我尝试这样做:我向你保证,file_get_contents()可以很好地用于获取远程文件,并且可以在大多数情况下使用。此外,它确实遵循正确的HTTP重定向,但最近有一些关于此功能的错误报告,我假设这就是您所指的。最后,是的,如果需要HTTP状态码,那么应该使用更健壮的代码。如果您只是需要捕获错误,那么可以使用file\u get\u contents()很好。同样,正如你所指出的,这在很多情况下都是好的,但肯定不是所有的情况。否决一个正确的答案?我不是说它不管用,我是说它不管用。正如您所说,curl是一个更可靠、更健壮的工具。curl很可能不会出现超时错误,因为curl默认为网络超时(即2分钟)。与其关闭IPv6,不如尝试修复它。如果失败的话,你也可以做出选择。
<?php
$a = file_get_contents('http://www.google.com');
echo $
Warning: file_get_contents(http://www.google.com) [function.file-get-contents]: failed to open stream: Connection timed out in /home/test.php on line 2