/get_current_data.php
PHP | 99 lines | 74 code | 17 blank | 8 comment | 13 complexity | a5ff61af9eb38852d830265c193a4858 MD5 | raw file
- <?php
- if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start();
- header('Cache-Control: no-cache, must-revalidate');
- header('Content-type: application/json');
- $file = './data/tmp/data.tmp';
- if (file_exists($file) && (filectime($file) > (time() - 7))) {
- echo file_get_contents($file);
- } else {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, "http://www.quadrant-atc.net/data.js");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- $data = curl_exec($ch);
- curl_close($ch);
-
- $lines = explode('-',$data);
- //print_r($lines);
- $data = null;
- foreach ( $lines as $line ) {
- $pattern = '@track\("(\w{3,9})\s*["]{1}[,]{1}([0-9\. ]{10})[,]{1}([0-9\. ]{11})[,]{1}(\d{1,3})[,]{1}(\d{1,4})[,]{1}(\d{1,3}).*@';
- preg_match_all($pattern, $line, $data_add);
- $pattern = '@deltrack\("(\w{3,9})\s*"\);@';
- preg_match_all($pattern, $line, $data_del);
- }
-
- for ( $i = 0; $i < count($data_add[0]); $i++) {
- if (is_array($data_add[1][$i])) {
- $entries[$data_add[1][$i]]['lat'] = ($entries[$data_add[1][$i]]['lat'] + trim($data_add[2][$i])) / 2;
- $entries[$data_add[1][$i]]['lon'] = ($entries[$data_add[1][$i]]['lon'] + trim($data_add[3][$i])) / 2;
- $entries[$data_add[1][$i]]['hdg'] = floor(($entries[$data_add[1][$i]]['hdg'] + $data_add[4][$i]) / 2);
- $entries[$data_add[1][$i]]['spd'] = floor(($entries[$data_add[1][$i]]['spd'] + $data_add[5][$i]*0.1944) / 2);
- $entries[$data_add[1][$i]]['alt'] = floor(($entries[$data_add[1][$i]]['alt'] + $data_add[6][$i]) / 2);
- } else {
- $entries[$data_add[1][$i]]['type'] = "add";
- $entries[$data_add[1][$i]]['lat'] = trim($data_add[2][$i]);
- $entries[$data_add[1][$i]]['lon'] = trim($data_add[3][$i]);
- $entries[$data_add[1][$i]]['hdg'] = $data_add[4][$i];
- $entries[$data_add[1][$i]]['spd'] = floor($data_add[5][$i]*0.1944); // *(0.36/1.852) dm/s => kts
- $entries[$data_add[1][$i]]['alt'] = $data_add[6][$i];
- }
- }
-
- for ( $i = 0; $i < count($data_del[0]); $i++) {
- //$entries[$data[1][$i]]['callsign'] = $data_add[1][$i];
- if (!is_array($data_del[1][$i])) {
- $entries[$data_del[1][$i]]['type'] = "delete";
- }
- }
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, "http://www.flightradar24.com/_xml/plane_data3.php");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
- $data = curl_exec($ch);
- curl_close($ch);
-
- $lines = explode("/n",$data);
- $data = null;
- foreach ( $lines as $line ) {
- //track("AFL315 ",47.7028620, 8.1190306,225,2053,380);
- //$pattern = '@track\("(\w{3,9})\s*["]{1}[,]{1}([0-9\. ]{10})[,]{1}([0-9\. ]{11})[,]{1}(\d{1,3})[,]{1}(\d{1,4})[,]{1}(\d{1,3}).*@';
- //<marker history=" newpoly 4BD063,LTBA,KYV009,31975,39.42118,30.0614,421,328,,,2010-04-18 20:47:38, " ></marker>
- $pattern = '@newpoly[ ]{1}[A-F0-9]{6}[,]{1}[A-Z0-9]{4,5}[,]{1}(\w{3,9})[,]{1}(\d{1,5})[,]{1}([0-9\. -]{2,10})[,]{1}([0-9\. -]{2,10})[,]{1}(\d{1,4})[,]{1}(\d{1,3})[,]{1}.*[>]{1}@';
- preg_match_all($pattern, $line, $data_add);
- }
-
- for ( $i = 0; $i < count($data_add[0]); $i++) {
- if (is_array($data_add[1][$i])) {
- $entries[$data_add[1][$i]]['lat'] = ($entries[$data_add[1][$i]]['lat'] + trim($data_add[3][$i])) / 2;
- $entries[$data_add[1][$i]]['lon'] = ($entries[$data_add[1][$i]]['lon'] + trim($data_add[4][$i])) / 2;
- $entries[$data_add[1][$i]]['hdg'] = floor(($entries[$data_add[1][$i]]['hdg'] + $data_add[6][$i]) / 2);
- $entries[$data_add[1][$i]]['spd'] = floor(($entries[$data_add[1][$i]]['spd'] + $data_add[5][$i]*0.1944) / 2);
- $entries[$data_add[1][$i]]['alt'] = floor(($entries[$data_add[1][$i]]['alt'] + $data_add[2][$i]/100) / 2);
- } else {
- $entries[$data_add[1][$i]]['type'] = "add";
- $entries[$data_add[1][$i]]['lat'] = trim($data_add[3][$i]);
- $entries[$data_add[1][$i]]['lon'] = trim($data_add[4][$i]);
- $entries[$data_add[1][$i]]['hdg'] = $data_add[6][$i];
- $entries[$data_add[1][$i]]['spd'] = floor($data_add[5][$i]*0.1944); // *(0.36/1.852) dm/s => kts
- $entries[$data_add[1][$i]]['alt'] = floor($data_add[2][$i]/100);
- }
- }
-
- //foreach ( $entries as $key => $entry )
-
- echo $json = json_encode($entries);
-
- //include('statistics/logger.php');
-
- // print_r($data_add);
-
-
- file_put_contents($file, $json);
- }
-
- ?>