php方法只读取远程文件的一部分

我正在使用file_get_contents获取远程文件并处理它们。 不幸的是,这些文件非常大,我只需要每个文件的一小段。 我完全知道我需要读取什么偏移量以及它的长度,但是阅读php手册,似乎只有在本地文件中才有可能使用file_get_contents

有没有下载整个文件的方法?


你需要使用fopenfseekfread函数来代替file_get contents

这里是指向文档的链接

  • FOPEN
  • FSEEK
  • FREAD
  • fopen以字节流的形式打开文件,您可以使用fseek查找您想要的位置,并根据需要使用fread读取尽可能多的字节


    据我所知,没有办法打开远程文件并将文件指针移动到某个点。 您需要某种为您提供该功能的远程服务。

    虽然fopen和fseek似乎工作,但有一个cullpit。 形成手册:

    并非所有的流都支持搜索。 对于那些不支持寻求的人,通过阅读和丢弃数据来实现从当前位置向前寻求; 其他形式的寻求将失败。

    至于实施服务,有很多例子。 我喜欢rsync解决方案,它只反映从远程机器到本地机器的更改块。


    如果您从http服务器读取文件,则可以设置Range标头,前提是删除服务器支持该标头。

    链接地址: http://www.djcxy.com/p/11237.html

    上一篇: php method to read only part of remote file

    下一篇: remove child from hasMany relationship