Отображать последние 5 строк из файла

307
10 мая 2017, 10:20

Нашёл на просторах код. Очень удобно и быстро работает даже с большими файлами, но вот отобразить больше одной строчки у меня не получилось. Возможно ли им отобразить последние 10 строчек файла?

<?php
$f = fopen("email.log", "r");
if($f){
    if(fseek($f, -1, SEEK_END) == 0){//в конец файла -1 символ перевода строки
    $len = ftell($f);
    for($i = $len; $i > ($len-5000); $i--){//5000 - предполагаемая макс. длина строки
        fseek($f, -2, SEEK_CUR);
        if(fread($f,1) == "\n")//если встретился признак конца строки
            break;
    }
    echo 'line start:',$i, '<br>';
    echo fread($f, $len - $i);//последняя строка
    }
    fclose($f);
} 
Answer 1
<?php
$f = fopen("email.log", "r");
if($f){
        if(fseek($f, -2, SEEK_END) == 0){//в конец файла -2 символ перевода строки
        $len = ftell($f); //ftell — Сообщает текущую позицию чтения/записи файла
        for($i = $len; $i > ($len-5000); $i--){//5000 - предполагаемая макс. длина строки
            fseek($f, -3, SEEK_CUR);
            if(fread($f,1) == "\n")//если встретился признак конца строки
                break;
        }

        echo fread($f, $len - $i);//последняя строка
        echo '<br>';
    }
    fclose($f);
} 
?>

Такой код выводит половину предпоследней строки.

READ ALSO
Создание запроса на вывод столбца в RedBeanPhp

Создание запроса на вывод столбца в RedBeanPhp

Как сделать запрос на вывод столбца на страницу в RedBeanPhp?

415
WebSocket connection

WebSocket connection

ЗдравствуйтеПытаюсь настроить websocket, а у меня постоянно выдает ошибку

599
cURL запрос и задача cron

cURL запрос и задача cron

друзья, есть такой скрипт, который реализует подписку на пользователя инстаграм

463
Не работают CSS-стили с PHP

Не работают CSS-стили с PHP

Есть файл indexphp

314