如何用PHP实现超低内存遍历超大文件目录的读取操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1674个文字,预计阅读时间需要7分钟。
这不是一篇教程,而是一篇笔记。因此,我不会详细阐述原理和实现,只会简单说明和举例。
前言:我写这篇笔记的原因是,目前在网络上关于PHP遍历目录文件和读取文本文件的教程很多,但大多数都过于系统化,难以理解。所以我希望这篇笔记能以简单明了的方式,直接输出结果。
这不是一篇教程,这是一篇笔记,所以我不会很系统地论述原理和实现,只简单说明和举例。
前言
我写这篇笔记的原因是现在网络上关于 PHP 遍历目录文件和 PHP 读取文本文件的教程和示例代码都是极其低效的,低效就算了,有的甚至好意思说是高效,实在辣眼睛。
这篇笔记主要解决这么几个问题:
PHP 如何使用超低内存快速遍历数以万计的目录文件?
PHP 如何使用超低内存快速读取几百MB甚至是GB级文件?
顺便解决哪天我忘了可以通过搜索引擎搜到我自己写的笔记来看看。(因为需要 PHP 写这两个功能的情况真的很少,我记性不好,免得忘了又重走一遍弯路)
遍历目录文件
网上关于这个方法的实现大多示例代码是 glob 或者 opendir + readdir 组合,在目录文件不多的情况下是没问题的,但文件一多就有问题了(这里是指封装成函数统一返回一个数组的时候),过大的数组会要求使用超大内存,不仅导致速度慢,而且内存不足的时候直接就崩溃了。
本文共计1674个文字,预计阅读时间需要7分钟。
这不是一篇教程,而是一篇笔记。因此,我不会详细阐述原理和实现,只会简单说明和举例。
前言:我写这篇笔记的原因是,目前在网络上关于PHP遍历目录文件和读取文本文件的教程很多,但大多数都过于系统化,难以理解。所以我希望这篇笔记能以简单明了的方式,直接输出结果。
这不是一篇教程,这是一篇笔记,所以我不会很系统地论述原理和实现,只简单说明和举例。
前言
我写这篇笔记的原因是现在网络上关于 PHP 遍历目录文件和 PHP 读取文本文件的教程和示例代码都是极其低效的,低效就算了,有的甚至好意思说是高效,实在辣眼睛。
这篇笔记主要解决这么几个问题:
PHP 如何使用超低内存快速遍历数以万计的目录文件?
PHP 如何使用超低内存快速读取几百MB甚至是GB级文件?
顺便解决哪天我忘了可以通过搜索引擎搜到我自己写的笔记来看看。(因为需要 PHP 写这两个功能的情况真的很少,我记性不好,免得忘了又重走一遍弯路)
遍历目录文件
网上关于这个方法的实现大多示例代码是 glob 或者 opendir + readdir 组合,在目录文件不多的情况下是没问题的,但文件一多就有问题了(这里是指封装成函数统一返回一个数组的时候),过大的数组会要求使用超大内存,不仅导致速度慢,而且内存不足的时候直接就崩溃了。

