Некорректно подсчитывается количество строк в файле

  • Автор темы Автор темы peon
  • Дата начала Дата начала

peon

Lok'tar ogar
PHP:
<?php

$handle = fopen("turn10-03-2014.log", "r");

if ($handle) {

    $count = 0;
    while (!feof($h)) {
        $line = fgets($h, 4096);
        $count++;
    }
    fclose($h);

    echo $count;

}
?>
В notepad++ количество строк 1974322
Этот код выводит 1976339

Что я делаю не так?
 
Что за переменная $h ?
Откуда взялась в коде?
оно было повыше, неаккуратно привел пример
$h = fopen("Russia-Msk.txt", "r");
Пусть пример будет такой:
PHP:
<?php

$h = fopen("turn10-03-2014.log", "r");

if ($h) {

    $count = 0;
    while (!feof($h)) {
        $line = fgets($h, 4096);
        $count++;
    }
    fclose($h);

    echo $count;

}
?>
 
Убрал 4096, теперь считает корректно. Так и не понял, как это влияло на количество строк?
 
Убрал 4096, теперь считает корректно. Так и не понял, как это влияло на количество строк?
Вот опять. Ну почему так трудно открыть документацию и прочитать, что
length
Чтение заканчивается по достижении length - 1 байт, если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (что встретилось первым). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки.
 
Вот опять. Ну почему так трудно открыть документацию и прочитать, что
Я читал ман вчера вечером и не верно понял смысл следующего предложения.
Чтение заканчивается по достижении length - 1 байт,
В моем понимание было, что функция вернет length - 1 байт каждой новой строки.
Конечно, позже на практичном опыте стало понятно, что каждую интерацию будет возвращена часть строки, указанного размера или оставшаяся часть строки до CR/LF или EOF, если она меньше указанного размера, к тому же эти спецсимволы в этом случае войдут в поток.
 
чтож продолжим рукоблудство
всмысле? с точки зрения инструментов или приложения?
например, если в логике приложения требуется значение количества строк, то wc тут каким боком?
а если мне нужно узнать количество строк, я могу открыть файл в npp + pagedown, ничего страшного, такая потребность редко возникает.
 
"и эти люди запрещают нам ковыряться в носу считают себя вправе критиковать Вурдалака!"
 
Сверху