Задача: Напиши функцию на 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 …

Нет Ответов