<?php // 00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 // M: 2016-04-29 00:15:00.013 D-Star, received network header from DG9VH /ZEIT to CQCQCQ via DCS002 S // M: 2016-04-29 19:43:21.839 DMR Slot 2, received network voice header from DL1ESZ to TG 9 // M: 2016-04-30 14:57:43.072 DMR Slot 2, received RF voice header from DG9VH to 5000 function getLastHeard() { $lastHeard = array(); $heardList = array(); $heardCalls = array(); if ($log = fopen(LOGFILE,'r')) { while ($logLine = fgets($log)) { // timestamp, mode, callsign, dstarid, target $timestamp = substr($logLine, 3, 19); $mode = substr($logLine, 27, strpos($logLine,",") - 27); $callsign2 = substr($logLine, strpos($logLine,"from") + 5, strpos($logLine,"to") - strpos($logLine,"from") - 6); $callsign = $callsign2; if (strpos($callsign2,"/") > 0) { $callsign = substr($callsign2, 0, strpos($callsign2,"/")); } $callsign = trim($callsign); $id =""; if ($mode == "D-Star") { $id = substr($callsign2, strpos($callsign2,"/") + 1); } $target = substr($logLine, strpos($logLine, "to") + 3); $source = "RF"; if (strpos($logLine,"network") > 0 ) { $source = "Network"; } if ( strlen($callsign <7) ) { array_push($heardList, array($timestamp, $mode, $callsign, $id, $target, $source)); } //Last-Heard-Liste: Array aufbauen in umgekehrter Richtung des Logs //Zeilen ausblenden, bei denen das Callsign länger als 6 Stellen ist } fclose($log); } array_multisort($heardList,SORT_DESC); foreach ($heardList as $listElem) { if(!(array_search($listElem[2]."#".$listElem[1].$listElem[3], $heardCalls) > -1)) { array_push($heardCalls, $listElem[2]."#".$listElem[1].$listElem[3]); array_push($lastHeard, $listElem); } } return $lastHeard; } //getLastHeard(); ?>