Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Pobieranie danych z pliku tekstowego i filtrowanie ich
lekosm2
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


Witam. Chciałbym zrobić skrypt, który będzie zliczał ilość spędzonych /minut/godzin na serwerze. Jedyny sposób jaki mi przychodzi do głowy to pobieranie tej informacji z logów gdzie m.in. zapisuje się czas kiedy użytkownik wszedł na serwer i kiedy z niego wyszedł.
Logi wejścia/wyjścia z serwera są zapisywane w pliku z rozszerzeniem .log i wyglądają tak:
Kod
5-10-09 06:23:30.163577|INFO    |VirtualServerBase|  1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving'
2015-10-09 06:23:33.997875|INFO    |VirtualServerBase|  1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105
2015-10-09 06:23:41.896634|INFO    |VirtualServerBase|  1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving'
2015-10-09 06:23:43.042064|INFO    |VirtualServerBase|  1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105

Ma ktoś jakiś pomysł co dalej z tym zrobić? W jaki sposób mam wykonać? (IMG:style_emoticons/default/ohno-smiley.gif)

Ten post edytował lekosm2 9.10.2015, 07:45:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Dobra, zrobienie tego jest banalne akurat, gorzej z wytłumaczeniem więc dam gotowca.
Ale w zamian za zadanie masz poczytać w manualu o każdej z użytych funkcji (IMG:style_emoticons/default/wink.gif)

  1. <?php
  2. date_default_timezone_set('Europe/Warsaw'); # na "localhost" mi coś wariowało bez (IMG:style_emoticons/default/biggrin.gif)
  3.  
  4. $TWOJ_LOG="5-10-09 06:23:30.163577|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving'
  5. 2015-10-09 06:23:33.997875|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105
  6. 2015-10-09 06:23:41.896634|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving'
  7. 2015-10-09 06:23:43.042064|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105";
  8.  
  9. preg_match_all('#\d{4}\-\d{2}-\d{2} \d{2}:\d{2}:\d{2}#', $TWOJ_LOG, $result);
  10.  
  11. /**
  12. * Funkcja z komentarzy :)
  13. * <a href="http://php.net/manual/pl/function.time.php" target="_blank">http://php.net/manual/pl/function.time.php</a>
  14. */
  15. function time_elapsed_A($secs){
  16. $ret=array();
  17. $bit=array(
  18. 'y'=>$secs/31556926%12,
  19. 'w'=>$secs/604800%52,
  20. 'd'=>$secs/86400%7,
  21. 'h'=>$secs/3600%24,
  22. 'm'=>$secs/60%60,
  23. 's'=>$secs%60
  24. );
  25.  
  26. foreach ($bit as $k=>$v)
  27. if ($v>0) $ret[]=$v.$k;
  28.  
  29. return join(' ', $ret);
  30. }
  31.  
  32. echo 'Ile był: ', time_elapsed_A((strtotime(end($result[0]))-strtotime($result[0][0]))); # pokaż czas..
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 19:41