Чтение файла .gz построчно - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь прочитать большой файл .gz построчно. Вот что я получил до сих пор:

$sfp = gzopen($filename, "rb");
while (!gzeof($sfp)) 
{
    $line = gzread($sfp, 4096);
}

и вот где возникает проблема: gzread читает длину, указанную в переменной (в нашем случае 4096), и игнорирует новые строки.

Iпроверил функцию "fget", и она работает правильно, поэтому ее строка чтения ограничивает размер, нажимая новую строку или размер, который когда-либо будет первым. Как я могу сделать то же самое с gzread или любым другим способом?

1 Ответ

0 голосов
/ 01 ноября 2019

Используйте fgets() так же, как при чтении обычного файла.

Не следует использовать режим b, если вы читаете строки, поскольку построчно подразумевает, что это текстовый файл.

$sfp = gzopen($filename, "r");
while ($line = fgets($sfp)) {
    echo $line;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...