我正在file_get_contents
获取远程文件并处理它们。不幸的是,这些文件非常大,我只需要每个文件的一小部分。我确切地知道我需要阅读的偏移量及其长度,但阅读 php 手册似乎file_get_contents
只有在本地文件上才有可能。
有没有不下载整个文件的方法?
我正在file_get_contents
获取远程文件并处理它们。不幸的是,这些文件非常大,我只需要每个文件的一小部分。我确切地知道我需要阅读的偏移量及其长度,但阅读 php 手册似乎file_get_contents
只有在本地文件上才有可能。
有没有不下载整个文件的方法?
据我所知,没有办法打开远程文件并将文件指针移动到某个点。您需要某种为您提供该功能的远程服务。
虽然 fopen 和 fseek 似乎工作,但有一个罪魁祸首。形成手册:
并非所有流都支持搜索。对于不支持查找的,从当前位置向前查找是通过读取和丢弃数据来完成的;其他形式的寻求将失败。
至于实现一个服务,有很多例子。我喜欢 rsync 解决方案,它只将更改的块从远程机器镜像到本地机器。
如果您从 http 服务器读取文件,则可以Range
在删除服务器支持的情况下设置标头。
如果有人偶然发现这是处理它的好方法,那就是使用 cURL 和CURLOPT_WRITEFUNCTION
.