如何从 url 检查文件是否存在
我需要检查远程服务器上是否存在特定文件。使用 is_file()
和 file_exists()
不起作用。有什么想法可以快速轻松地做到这一点吗?
I need to check if a particular file exists on a remote server. Using is_file()
and file_exists()
doesn't work. Any ideas how to do this quickly and easily?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
你不需要 CURL ...只是想检查文件是否存在太多开销...
使用 PHP 的 get_header。
然后检查 $result[0] 是否包含 200 OK (这意味着文件在那里)
检查 URL 是否有效的函数可能是这样的:
You don't need CURL for that... Too much overhead for just wanting to check if a file exists or not...
Use PHP's get_header.
Then check if $result[0] contains 200 OK (which means the file is there)
A function to check if a URL works could be this:
你必须使用CURL
You have to use CURL
我刚刚找到了这个解决方案:
来源:http:// /www.dreamincode.net/forums/topic/11197-checking-if-file-exists-on-remote-server/
I've just found this solution:
Source: http://www.dreamincode.net/forums/topic/11197-checking-if-file-exists-on-remote-server/
您好,根据我们在 2 台不同服务器之间的测试,结果如下:
使用curl 检查 10 个 .png 文件(每个约 5 mb)平均需要 5.7 秒。
使用标头检查相同的事情平均需要 7.8 秒!
因此,在我们的测试中,如果您必须检查较大的文件,curl 的速度要快得多!
我们的curl函数是:
这是我们的标头检查示例:
Hi according to our test between 2 different servers the results are as follows:
using curl for checking 10 .png files (each about 5 mb) was on average 5.7 secs.
using header check for the same thing took average of 7.8 seconds!
So in our test curl was much faster if you have to check larger files!
our curl function is:
here is our header check sample:
您可以使用函数 file_get_contents();
You can use the function file_get_contents();
使用curl发出请求,看看是否返回404状态码。使用 HEAD 请求方法执行请求,因此它只返回没有正文的标头。
Do a request with curl and see if it returns a 404 status code. Do the request using the HEAD request method so it only returns the headers without a body.