setTimeZone($local_tz); $local_time = $dt->format('H:i:s M jS'); // Same normalisation pattern as mmdvmhost/lh.php — every // value below comes from log-line parsing of RF traffic // and could carry hostile bytes from a transmitting // station. See the note in lh.php for the rationale. $modeHtml = htmlspecialchars(str_replace('Slot ', 'TS', $listElem[1]), ENT_QUOTES, 'UTF-8'); $cs = htmlspecialchars((string)$listElem[2], ENT_QUOTES, 'UTF-8'); $csUrl = rawurlencode((string)$listElem[2]); $csSuffix = htmlspecialchars((string)$listElem[3], ENT_QUOTES, 'UTF-8'); $tgtRaw = (string)$listElem[4]; if (strlen($tgtRaw) === 1) { $tgtRaw = str_pad($tgtRaw, 8, ' ', STR_PAD_LEFT); } $tgtHtml = htmlspecialchars($tgtRaw, ENT_QUOTES, 'UTF-8'); $src = htmlspecialchars((string)$listElem[5], ENT_QUOTES, 'UTF-8'); $dur = htmlspecialchars((string)$listElem[6], ENT_QUOTES, 'UTF-8'); $ber = htmlspecialchars((string)(isset($listElem[8]) ? $listElem[8] : ''), ENT_QUOTES, 'UTF-8'); $rssi = htmlspecialchars((string)(isset($listElem[9]) ? $listElem[9] : ''), ENT_QUOTES, 'UTF-8'); echo ""; echo ""; echo ""; if (is_numeric($listElem[2])) { if ($listElem[2] > 9999) { echo ""; } else { echo ""; } } elseif (!preg_match('/[A-Za-z].*[0-9]|[0-9].*[A-Za-z]/', $listElem[2])) { echo ""; } else { $csTrim = (strpos($listElem[2], "-") > 0) ? substr($listElem[2], 0, strpos($listElem[2], "-")) : (string)$listElem[2]; $csTrimHtml = htmlspecialchars($csTrim, ENT_QUOTES, 'UTF-8'); $csTrimUrl = rawurlencode($csTrim); if ($listElem[3] && $listElem[3] != ' ' ) { echo ""; } else { echo ""; } } echo ""; if ($listElem[5] == "RF"){ echo ""; } else { echo ""; } if ($listElem[6] == null) { // Live duration $utc_time = $listElem[0]; $utc_tz = new DateTimeZone('UTC'); $now = new DateTime("now", $utc_tz); $dt = new DateTime($utc_time, $utc_tz); $duration = $now->getTimestamp() - $dt->getTimestamp(); $duration_string = $duration<999 ? round($duration) . "+" : "∞"; echo ""; } else if ($listElem[6] == "DMR Data") { echo ""; } else { echo ""; //duration // Colour the BER Field if (floatval($listElem[8]) == 0) { echo ""; } elseif (floatval($listElem[8]) >= 0.0 && floatval($listElem[8]) <= 1.9) { echo ""; } elseif (floatval($listElem[8]) >= 2.0 && floatval($listElem[8]) <= 4.9) { echo ""; } else { echo ""; } echo ""; //rssi } echo "\n"; $counter++; } } } ?>
()Time in time zone Transmitted Mode Callsign Target, D-Star Reflector, DMR Talk Group etc Received from source (s)Duration in Seconds Bit Error Rate RSSIReceived Signal Strength Indication
$local_time$modeHtml$cs$cs$cs
$csTrimHtml/$csSuffix
(GPS)
$csTrimHtml
(GPS)
".str_replace(' ', ' ', $tgtHtml)."RF$srcTX " . $duration_string . " secDMR Data$dur$ber$ber$ber$ber$rssi