PHP 逐行读取并处理超大 TXT 文件

PHP 读取 超大文件需要注意内存消耗问题,本文采用 yield 生成器来解决

/**
 * @return Generator
 */
$fileData = function () {
	$file = fopen(__DIR__ . '/CSRA.list_.txt', 'r');

	if (!$file) {
		return; // die() is a bad practice, better to use return
	}
	while (($line = fgets($file)) !== false) {
		yield $line;
	}

	fclose($file);
};

$data = [];
foreach ($fileData() as $line) {

}