Witam smile.gif
analizuję logi serwera apache rejestrowane w formacie Combined Log Format ( http://httpd.apache.org/docs/1.3/logs.html ) Oto mały sampelek logów:

85.89.170.197 - - [20/May/2007:06:02:05 +0200] "GET / HTTP/1.1" 200 13093 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
65.55.209.100 - - [21/May/2007:06:39:39 +0200] "GET /robots.txt HTTP/1.0" 404 281 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
74.6.86.203 - - [22/May/2007:07:14:35 +0200] "GET / HTTP/1.0" 200 13916 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
212.191.80.145 - - [23/May/2007:07:25:26 +0200] "GET /grafika/naglowek.jpg HTTP/1.1" 200 26303 "http://www.example.pl/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; pl) Opera 8.50"
85.89.170.197 - - [20/May/2007:06:02:09 +0200] "GET /grafika/list.gif HTTP/1.1" 304 - "http://www.example.pl/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

i chciałbym zliczyć ilość wysłanych bajtów osobno dla każdego dnia. Jak narazie mam wyrażenie reguralne wyciągające datę oraz odczytujące i sumujące wszystkie wysłane przez serwer bajty:

  1. <?php
  2. $log="access100.log";
  3. $czytanie=fopen($log,"r");
  4.  
  5. while(!feof($czytanie)) 
  6. {
  7. $linia = fgets($czytanie,1024);
  8.  // wyciągniecie daty 
  9.  if ( ereg("([0-9]+)/([A-Za-z]+)/([0-9]+)","$wiersz",$data)
  10.  {
  11.  $tab [$data[0]]++;
  12.  }
  13.  // odczytanie i zsumowanie ilosci wysłanych przez serwer bajtów 
  14.  if (preg_match('/.*?" [0-9]+ ([0-9]+) /si', $linia, $wynik))
  15.  {
  16.  $ilosc_bajtow += $wynik[1];
  17.  }
  18. }
  19. ?>


ale nie wiem w jaki sposób zliczyc ilosc wyslanych bajtow osobno dla kazdego dnia?

proszę o pomoc smile.gif