Задача: Напиши функцию на php, чтобы прочитать большой файл построчно
Ответ: можно с помощью генераторов, пример:
<?php function getLines($file) { $f = fopen($file, 'r'); try { while ($line = fgets($f)) { yield $line; } } finally { fclose($f); } } foreach (getLines("file.txt") as $n => $line) { echo $line; } ?>
Еще одно решение ( live ), аналогичное, от ChatGpt, но вместо while — цикл for:
<?php /** * Read file line by line * @param string $filename */ function readBigFile(string $filename) { $file = fopen($filename, "r"); while (!feof($file)) { yield fgets($file); } fclose($file); } // example of usage: foreach (readBigFile("example.txt") as $line) { echo $line; } // output: contents of example.txt file line by line
Задачка встречалась в интервью в FixPrice, Lamoda …
Нет Ответов