PHP 用生成器读取大文件
示例
生成器的一个常见用例是从磁盘读取文件并遍历其内容。下面是一个类,可让您遍历CSV文件。此脚本的内存使用情况非常可预测,不会随CSV文件的大小而波动。
<?php class CsvReader { protected $file; public function __construct($filePath) { $this->file = fopen($filePath, 'r'); } public function rows() { while (!feof($this->file)) { $row = fgetcsv($this->file, 4096); yield $row; } return; } } $csv = new CsvReader('/path/to/huge/csv/file.csv'); foreach ($csv->rows() as $row) { //对CSV行进行操作。 }