任何想法为什么如果文件在我的服务器上并且我知道网址是正确的,fopen会为文件超时?
更新:抱歉,我应该提到这是在php中。 代码是:
fopen($url, 'r');
如果我输入文件的相对路径,但是如果$ url是我服务器中的网址(但它适用于google.com),则无效。谢谢你的帮助。
Alaitnik的回答是正确的。只有当我通过以太网接口访问自己的服务器文件时才会出现此问题。我怎样才能解决这个问题?我需要能够从以太网接口访问该文件,因为url动态加载(它是从wordpress cms生成的,所以url在技术上并不作为我服务器上的文件存在)
答案 0 :(得分:4)
答案 1 :(得分:3)
您是否尝试使用同一服务器上运行的程序中的HTTP协议从您自己的服务器下载文件?
如果是这样,超时问题可能与Web服务器或网络配置有关。超时通常只会发生,因为:
例如,如果这些查询来自以太网接口,则本地防火墙规则可能仅允许访问www.example.com
,但本地连接会尝试通过环回接口。
答案 2 :(得分:1)
也许您的“allow_url_fopen”设置为“关闭” 检查你的php.ini文件或phpinfo()
答案 3 :(得分:0)
如果您尝试获取网址的HTML,我建议使用curl而不是fopen。
fopen最适合与本地文件一起使用,因为它不“知道”如何处理网络资源的特性。
答案 4 :(得分:0)
检查documentation of fopen上的评论。那里有很多黄金。
答案 5 :(得分:0)
我花了很多时间来解决这个问题,但在这里我找到了它,感谢Alnitak。 在网址中使用localhost打开文件而不是主机名对我来说是个窍门。