За последние 24 часа нас посетили 50276 программистов и 1758 роботов. Сейчас ищут 1177 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем Bridun, 2 окт 2017.

Метки:
  1. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    Подскажите как посчитать строки в файле тоесть в папке файлы и там есть запись в строку, пробовал $lines = count(file($file)); не подходит и вопше как прочитать файл

    PHP:
    1. $dir = opendir ("../input/");
    2.   while ( $file = readdir ($dir)){
    3.  
    4.     if (( $file != ".") && ($file != "..")){
    5.      //как посчитать строки в фале
    6.       echo "<tr>
    7.    <td>$file</td>
    8.    <td >количество строк в фале</td>
    9.  
    10.  </tr>";
    11.     }
    12.   }
    13.   closedir ($dir);
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    readdir возвращает файлы без путей, добавьте путь - будет счастье
     
  5. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    подскажите пожалуйста как?
    --- Добавлено ---
    в папке есть фалы одинакового типа и вних записана информация в строку , папку открываем выводим фалы а вот как их прочитать внутри ???
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    count(file($filename)); //должен вернуть количество строк
     
  7. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    спасибо за ответ но так не работает
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Bridun, а ошибки есть? Сколько строчек в файле?
     
  9. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    в файле ключевые слова для парсинга от 1 слова или строки и до сколько угодно , в папке может быть и 10000 файлов и нужно выводить например в папке 10000 файлов и в каждом файле 100 строк
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ну так каждый файл читать функцией file, результат работы функции будет массив, в принципе, count должен вернуть вам колько там строчек. и все. Покажите код, как вы используете count() и file() /
    В коде в первом посте я вижу вы получаете список файлов, но не вижу чтобы вы читали содержимое каждого файла, и определяли сколько строк.
    --- Добавлено ---
    PHP:
    1. $path = "test";
    2. $dir = opendir($path);
    3. echo "<table  border=1  ><tr><th>Имя файла</th><th>Строк в файле</th> </tr>";
    4. while ($file = readdir($dir)) {
    5.  
    6.     if (( $file != ".") && ($file != "..")) {
    7.         //как посчитать строки в фале
    8.         $count = count(file($path . DIRECTORY_SEPARATOR . $file));
    9.         echo "<tr><td>$file</td><td>$count</td> </tr>";
    10.     }
    11. }
    12. echo "</table>";
    13. closedir($dir);
    При указании пути последний слэш не ставьте.
    --- Добавлено ---
    Учтите, пустые строки тоже считаются.
     
    Bridun нравится это.
  11. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    спасибо
     
  12. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    подскажите как из глоб искулючить папки и и фалы тоесть в папке есть есть тчт и пхп фалы а нужно чтоб выводились тхт

    тоесть выводит папка/файл а нужно чтоб выводило файл
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    glob маски поддерживает. *.txt, например
     
  14. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    да так и делал только вот я о чем выводит cron-files/cron-0-4.txt а нужно чтоб выводило cron-0-4.txt или cron-0-4
     
  15. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    и еще один вопрос если вас не затруднит я изучаю php знаний пока нет а просто нати ответ нетак то просто я мастерю велосипед
    как вывести информацию из фала еслии в файле запись так
    PHP:
    1. $page_title = '';
    2. $page_h1 = '';
    3. $page_descr = '';
    4. $page_keyws = '';
    5. $page_4menu = '';
    6. $page_id = '1';
    7.  
    8. $page_content = <<< EOT EOT;
    пробую так выводит все целиком а как прочитать через переменные
    PHP:
    1. $path = "cron-files";
    2. $dir = opendir($path);
    3. echo "<table  border=1 ><tr><th>контент</th></tr>";
    4. while ($file = readdir($dir)) {
    5.  
    6.     if ( $file != "." && $file != ".." && $file != ".htaccess" ) {
    7.         $content=file_get_contents($path . '/'. $file);
    8.  
    9.         echo "<tr><td>$content</td></tr>";
    10.     }
    11. }
    12. echo "</table>";
    13. closedir($dir);
     
  16. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    для этих целей используйте basename()
     
  17. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    Спасибо
     
  18. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    вот так у меня получилось вывести

    PHP:
    1. $path = "content1";
    2. $dir = opendir($path);
    3. echo "<table  border=1 ><tr><th colspan =\"6\" >контент</th></tr>";
    4. while ($file = readdir($dir)) {
    5.     if ( $file != "." && $file != ".." && $file != ".htaccess" ) {
    6.         $contents = $path . DIRECTORY_SEPARATOR . $file;
    7.      
    8.         $name = basename($file, ".php").PHP_EOL;
    9.     }
    10. }
    11.  
    12. closedir($dir);
    13.  
    14.         $content=file_get_contents($contents);
    15.         //preg_match("|\/content\/(.*).php|Ui",  $contents, $matches);
    16.        // $file_id=$matches[1];
    17.          preg_match("|page_id = '(.*)\'\;|Ui", $content, $matches);
    18.         $page_id=$matches[1];
    19.         preg_match("|page_4menu = '(.*)\'\;|Ui", $content, $matches1);
    20.         $page_4menu=$matches1[1];
    21.     preg_match("|page_descr = '(.*)\'\;|Ui", $content, $matches2);
    22.         $page_descr=$matches2[1];
    23.         preg_match("|page_title = '(.*)\'\;|Ui", $content, $matches3);
    24.         $page_title=$matches3[1];
    25.     preg_match("|page_img = '(.*)\'\;|Ui", $content, $matches4);
    26.         $page_img=$matches4[1];
    27. echo "<table  border=1 ><tr><th colspan =\"6\" >контент</th></tr>";
    28.         echo '<tr style="background-image: url(skin/image/bottom.jpg);">
    29.               <td>&nbsp;'.$name.'</td>
    30.               <td>&nbsp;&nbsp;<a href=/'.$arrof[$page_id].'.html target="_blank">'. $page_4menu .'</a></td>
    31. <td>&nbsp;&nbsp;<div><a href='. $page_img .' class="highslide" onclick="return hs.expand(this)" ><img width="30" src="'. $page_img .'" title="'. $page_descr .'"></a><div class="highslide-caption">'. $page_descr .'</div></div></td>
    32.               <td> <a href=edit.php?id='.$file_id.'><img src=skin/image/b_edit.png title="Редактировать"></a></td>
    33.       <td>'."<a href=# onclick=\"confirmation('$file_id')\"><img src=skin/image/b_drop.png title=\"Удалить страницу\"></a></td></tr>";
    34. echo "</table>";