За последние 24 часа нас посетили 34252 программиста и 1749 роботов. Сейчас ищут 1012 программистов ...

Вывод определённого текста из файла .log (txt)

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

  1. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Здравствуйте, не могу найти информацию как вывести определённый текст их файла..

    Целиком без проблем, а вот как пропускать не нужные символы не знаю)

    Пример: есть файл

    log_2017.11.07.log

    Содержимое

    20 36 28 91.210.156.24 1490 cs
    20 36 29 91.210.156.24 1490 cs
    20 36 32 91.210.156.24 1490 cs
    20 36 35 91.210.156.24 1490 cs
    20 36 38 91.210.156.24 1490 cs
    20 36 41 91.210.156.24 1490 cs
    20 36 44 91.210.156.24 1490 cs
    20 36 47 91.210.156.24 1490 cs
    20 40 35 91.210.156.24 1798 cs
    20 40 36 91.210.156.24 1798 cs
    20 47 27 109.173.19.45 35848 cs
    20 47 29 109.173.19.45 35848 cs

    Вывести надо:

    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    91.210.156.24 cs
    109.173.19.45 cs
    109.173.19.45 cs


    Вывод на html страницу

    Хотел бы сам разобраться, но даже не знаю с чего начать)
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    PHP:
    1. <?php
    2.     $f = file('1.txt',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
    3.     foreach($f as $file){
    4.         $str = explode(' ', $file);
    5.         echo $str[3]." ".$str[5]. '<br/>';
    6.     }
    Код (Text):
    1. 91.210.156.24 cs
    2. 91.210.156.24 cs
    3. 91.210.156.24 cs
    4. 91.210.156.24 cs
    5. 91.210.156.24 cs
    6. 91.210.156.24 cs
    7. 91.210.156.24 cs
    8. 91.210.156.24 cs
    9. 91.210.156.24 cs
    10. 91.210.156.24 cs
    11. 109.173.19.45 cs
    12. 109.173.19.45 cs
     
  3. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Спасибо, а как можно добавить путь /var/www/www/data/ms/logs/ms_дата сейчас формата 2017.11.07 .log (/var/www/www/data/ms/logs/ms_2017.11.07.log) ?
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    PHP:
    1. date('Y.m.n')
    вроде так
     
    zadpot_ru нравится это.
  5. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Спасибо)))
    Не знаю php

    Код (Text):
    1.  
    2. <?php
    3. $data = date ("y.m.d");
    4.  
    5.     $f = file('/var/www/www/data/ms/logs/ms_' echo("$data") '.log',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
    6.     foreach($f as $file){
    7.         $str = explode(' ', $file);
    8.         echo $str[3]." ".$str[5]. '<br/>';
    9.     }
    10.    
    11.    
    Как можно вставить вывод echo("$data"); в путь к файлу? Вообще не разбираюсь но хочу понять)
     
  6. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    PHP:
    1.     $f = file('/var/www/www/data/ms/logs/ms_'.$data'.log',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)
    Вроде так
     
    zadpot_ru нравится это.
  7. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Пишет ошибку и не запускается сам файл
    https://cloud.mail.ru/public/LsQ6/ZQBNYkGjz
    [​IMG]
     
  8. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Почитал, вроде еще одно точку нужна
    .$data.
    $f = file('/var/www/www/data/ms/logs/ms_'.$data.'.log',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

    Сделал но не хочет работать
    Код (Text):
    1. <?php
    2. $data = date ("y.m.d");
    3. $f = file('/var/www/www/data/ms/logs/ms_'.$data.'.log',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
    4.     foreach($f as $file){
    5.         $str = explode(' ', $file);
    6.         echo $str[3]." ".$str[5]. '<br/>';
    7.     }
    8.    
    9. ?>
     
  9. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Насколько я понял тебе нужна дата формата 2017.11.11 а у тебя 17.11.11 вот так формирует нужную тебе дату
    PHP:
    1. date ("Y.m.d");
     
    zadpot_ru нравится это.
  10. zadpot_ru

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

    С нами с:
    21 фев 2015
    Сообщения:
    20
    Симпатии:
    1
    Всё работает)
    Код (Text):
    1. <?php
    2. $data = date ("Y.m.d");
    3. $f = file('/var/www/www/data/ms/logs/ms_'.$data.'.log',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
    4.     foreach($f as $file){
    5.         $str = explode(' ', $file);
    6.         echo $str[3]." ".$str[5]. '<br/>';
    7.     }
    8.  
    9. ?>
    А как можно сделать лимит? Допустим 10-15 записей? С низу.
    Новые записи появляются с низу
    1 Старые
    2 Старые
    3 Старые
    4 Новые
    5 Новые
    6 Новые

    Как вывести только последние 3 записи? (4,5,6)
     
  11. Emilien

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

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    PHP:
    1. $f = array_slice($f, -3);
    Добавить перед циклом foreach.
     
    zadpot_ru нравится это.