php获取文件流到较大文件流的一部分

时间:2015-03-12 11:21:17

标签: php filestream

可能看起来很奇怪,但我有一个巨大的文件,我需要处理它并获取流的范围并像流本身一样对待它们,然后我可以递归地从中获取更小的流。

我试图避免的问题是将大量数据复制到内存中,比如你有一个4GB的XML文件,我想用文件流打开它。

我可以在流中搜索特定令牌,然后继续搜索终止令牌。这个字节范围可能是2GB大小,这意味着将它托管在变量中是不切实际的。

我可以在"变量"周围写一个包装器。例如,如果我想控制该变量本身用于另一个令牌/终止符,然后返回表示该字节范围的另一个流,那么我会控制任何读取或写入它的尝试。

所以这一切就像在大文件中保存偏移+范围位置而不将任何数据复制到存储器中一样,我只需要存储每个"的开始/停止字节范围。变量"然后,当我完全确定我想将数据读入变量时,我可以将其导出。

这将避免在内存中存储大量数据的问题,并且我意识到性能问题,而不是一个解决方案,它比一个耗尽千兆字节内存的解决方案

0 个答案:

没有答案