parse_logfile( $logfile ); } if( file_exists( $ippfile ) ) { $this->parse_ippfile( $ippfile ); } } private function parse_logfile( $filename ) { $contents = file_get_contents( $filename ); //echo "
$contents"; /* Parse statusfile */ $log = array(); $log = explode("\n", $contents); foreach($log as $entry) { $entry = explode(",", $entry); if( sizeof($entry) == 5 ) { $current_entry['hostname'] = $entry[0]; $current_entry['ip'] = $entry[1]; $current_entry['received'] = $this->bytesToSize($entry[2]); $current_entry['send'] = $this->bytesToSize($entry[3]); $current_entry['total'] = $this->bytesToSize($entry[2] + $entry[3]); $current_entry['date'] = $entry[4]; $this->logfile[] = $current_entry; } } //echo '
'; //echo var_dump( $this->logfile ); //echo ''; return $this->logfile; } private function parse_ippfile( $filename ) { $contents = file_get_contents( $filename ); echo "
$contents"; /* Parse hostfile */ $ipp = array(); $ipp = explode("\n", $contents); foreach($ipp as $entry) { /* Dont process empty entries */ if( $entry == NULL ) break; /* Split and organise entry */ $entry = explode(',', $entry); $host['hostname'] = $entry[0]; $host['ip'] = $entry[1]; $host['remote_ip'] = ""; $host['date'] = ""; $host['received'] = ""; $host['send'] = ""; /* Check ipp against status log */ foreach($this->logfile as $entry) { if( $host['hostname'] == $entry['hostname'] ) { $host['up'] = true; $host['remote_ip'] = $entry['ip']; $host['date'] = $entry['date']; $host['received'] = $entry['received']; $host['send'] = $entry['send']; break; } else { $host['up'] = false; } } /* Append entry */ $this->ippfile[] = $host; } echo '
'; echo var_dump( $this->ippfile ); echo ''; } private function bytesToSize($bytes, $precision = 2) { $kilobyte = 1024; $megabyte = $kilobyte * 1024; $gigabyte = $megabyte * 1024; $terabyte = $gigabyte * 1024; if (($bytes >= 0) && ($bytes < $kilobyte)) return $bytes . ' B'; elseif (($bytes >= $kilobyte) && ($bytes < $megabyte)) return round($bytes / $kilobyte, $precision) . ' KB'; elseif (($bytes >= $megabyte) && ($bytes < $gigabyte)) return round($bytes / $megabyte, $precision) . ' MB'; elseif (($bytes >= $gigabyte) && ($bytes < $terabyte)) return round($bytes / $gigabyte, $precision) . ' GB'; elseif ($bytes >= $terabyte) return round($bytes / $terabyte, $precision) . ' TB'; else return $bytes . ' B'; } }; ?>