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

Tags

Нет Ответов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Рубрики


Подпишись на новости
👋

Есть вопросы?