Если вы открываете большой файл, вы, вероятно, захотите использовать Generators вместе с fgets (), чтобы избежать загрузки всего файла в память:
/**
* @return Generator
*/
$fileData = function() {
$file = fopen(__DIR__ . '/file.txt', 'r');
if (!$file)
die('file does not exist or cannot be opened');
while (($line = fgets($file)) !== false) {
yield $line;
}
fclose($file);
};
Используйте это так:
foreach ($fileData() as $line) {
// $line contains current line
}
Таким образом, вы можете обрабатывать отдельные строки файла внутри foreach ().
Примечание: генераторы требуют> = PHP 5.5