Как вывести количество строк файлов постранично?

Привет всем подскажите как реализовать, есть скажем 100 тхт. файлов в них записаны строки разного количества , как вывести количество строк файлов постранично 5ae6044499614266592088.png.
я уже делал вот так дело втом что выводится на всех файлах лиш одна сума по последнему файлу

$files = glob("../data/*.*");

$fnumber = '10';

foreach($files as $file){

$name[] = basename($file);

$size = round(filesize($file)/1024,2);

$count = count(file($file));

$summa += count(file($file));

}


$counts = count($files);

$pages = ceil($counts/$fnumber);

$page = $_GET['page'];  

if(!$page OR $page=='')  
{  
        $nav_min = 0;  
        $nav_max = $fnumber - 1;  
}else{  
        $nav_min = ($page * $fnumber) - $fnumber;  
        $nav_max = ($fnumber * $page) - 1;  
}  


# Вывод  
 for($i = $nav_min; $i <= $nav_max; $i++)

{ 
        echo $name[$i]; // выводится 

           echo $size;   //  НЕ выводится 

            echo $count;   //  НЕ выводится 

} 

            echo $summa;   //  выводится 



    # Навигация  

    for($fpr = '', $i =1; $i <= $pages; $i++)
    {
        echo $fpr=(($i == 1 || $i == $pages || abs($i-$page) < 2) ? ($i == $page ? "<b style='font-size: 14px'>[$i]</b> | " : ' <a href="?page='.$i.'">'.$i.'</a> | ') : (($fpr == ' ... ' || $fpr == '')? '' : ' ... '));
    }
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Yan-s
Если дело происходит на линукс и все файлы в одной папке, можно сделать так:
$path = 'dirname/*'; // все файлы из dirname
$result = shell_exec('wc -l ' . $path);

в $result получим строку вида
10 filename1.txt
17 filename2.txt
27 total

Остается только распарсить эту строку удобным вам способом.

Другой способ: count(file($filename))
Сперва вам надо получить все пути до файлов.
Часто это удобно сделать при помощи php.net/manual/ru/function.glob.php

Перебираем массив путей и выполняем на каждом count(file($filename)) сохраняя результат в массив, попутно суммируя в отдельную переменную.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы