"1", "Feb"=>"2", "Mar"=>"3", "Apr"=>"4", "May"=>"5", "Jun"=>"6", "Jul"=>"7", "Aug"=>"8", "Sep"=>"9", "Oct"=>"10", "Nov"=>"11", "Dec"=>"12" ); foreach($file as $line) { $elements = explode(" ", $line); $ip = $elements[0]; $time = substr($elements[3], 1, strlen($elements[3])); $elements = explode(":", $time); $date = $elements[0]; $hour = $elements[1]; $minutes = $elements[2]; $seconds = $elements[3]; $elements = explode("/", $date); $day = $elements[0]; $month = $monthName[$elements[1]]; $year = $elements[2]; $timestamp = mktime($hour, $minutes, $seconds, $month, $day, $year); if(array_key_exists($ip, $ipArray)) $ipArray[$ip] += 1; else $ipArray[$ip] = 1; if(!array_key_exists($ip, $beginTime)) $beginTime[$ip] = $timestamp; $endTime[$ip] = $timestamp; } asort($ipArray); foreach($ipArray as $ip => $count) { $perHour = $endTime[$ip] - $beginTime[$ip]; $perHour = $perHour / 3600; $perHour = round($perHour, 2); if($perHour == 0) $perHour = ""; else $perHour = round($count / $perHour, 2); $begin = date($dateFormat, $beginTime[$ip]); $end = date($dateFormat, $endTime[$ip]); $ip = processString($ip); echo $ip; echo "\tTimes Accessed: ".$count."\tPer Hour: ".$perHour; if(strlen($perHour) <= 5) echo "\t"; echo "\tSeen: ".$begin." -> ".$end."\n"; } function processString($string) { $string = "[ ".$string; $length = strlen($string); $toAdd = 18 - $length; for($x = 0; $x < $toAdd; $x++) { $string = $string." "; } $string = $string."]"; return $string; } ?>