1
0

json.php 1.5 KB

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