json.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. require_once 'telemetry_db.php';
  3. /**
  4. * @param int|float $d
  5. *
  6. * @return string
  7. */
  8. function format($d)
  9. {
  10. if ($d < 10) {
  11. return number_format($d, 2, '.', '');
  12. }
  13. if ($d < 100) {
  14. return number_format($d, 1, '.', '');
  15. }
  16. return number_format($d, 0, '.', '');
  17. }
  18. /**
  19. * @param array $speedtest
  20. *
  21. * @return array
  22. */
  23. function formatSpeedtestData($speedtest)
  24. {
  25. // format values for the image
  26. $speedtest['dl'] = format($speedtest['dl']);
  27. $speedtest['ul'] = format($speedtest['ul']);
  28. $speedtest['ping'] = format($speedtest['ping']);
  29. $speedtest['jitter'] = format($speedtest['jitter']);
  30. $speedtest['timestamp'] = $speedtest['timestamp'];
  31. $ispinfo = json_decode($speedtest['ispinfo'], true)['processedString'];
  32. $dash = strpos($ispinfo, '-');
  33. if ($dash !== false) {
  34. $ispinfo = substr($ispinfo, $dash + 2);
  35. $par = strrpos($ispinfo, '(');
  36. if ($par !== false) {
  37. $ispinfo = substr($ispinfo, 0, $par);
  38. }
  39. } else {
  40. $ispinfo = '';
  41. }
  42. $speedtest['ispinfo'] = $ispinfo;
  43. return $speedtest;
  44. }
  45. $speedtest = getSpeedtestUserById($_GET['id']);
  46. if (!is_array($speedtest)) {
  47. echo '{}';
  48. }
  49. $speedtest = formatSpeedtestData($speedtest);
  50. echo json_encode(array('timestamp'=>$speedtest['timestamp'],'download'=>$speedtest['dl'],'upload'=>$speedtest['ul'],'ping'=>$speedtest['ping'],'jitter'=>$speedtest['jitter'],'ispinfo'=>$speedtest['ispinfo']));