@@ -982,7 +982,7 @@ discard block |
||
| 982 | 982 | try { |
| 983 | 983 | $sth = $this->db->prepare($query); |
| 984 | 984 | $sth->execute($query_values); |
| 985 | - } catch(PDOException $e) { |
|
| 985 | + } catch (PDOException $e) { |
|
| 986 | 986 | echo "error : ".$e->getMessage(); |
| 987 | 987 | } |
| 988 | 988 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
@@ -1000,19 +1000,19 @@ discard block |
||
| 1000 | 1000 | try { |
| 1001 | 1001 | $sth = $this->db->prepare($query); |
| 1002 | 1002 | $sth->execute($query_values); |
| 1003 | - } catch(PDOException $e) { |
|
| 1003 | + } catch (PDOException $e) { |
|
| 1004 | 1004 | echo "error : ".$e->getMessage(); |
| 1005 | 1005 | } |
| 1006 | 1006 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
| 1007 | 1007 | return $all; |
| 1008 | 1008 | } |
| 1009 | 1009 | public function getAllNOTAMtext() { |
| 1010 | - $query = 'SELECT full_notam FROM notam'; |
|
| 1010 | + $query = 'SELECT full_notam FROM notam'; |
|
| 1011 | 1011 | $query_values = array(); |
| 1012 | 1012 | try { |
| 1013 | 1013 | $sth = $this->db->prepare($query); |
| 1014 | 1014 | $sth->execute($query_values); |
| 1015 | - } catch(PDOException $e) { |
|
| 1015 | + } catch (PDOException $e) { |
|
| 1016 | 1016 | echo "error : ".$e->getMessage(); |
| 1017 | 1017 | } |
| 1018 | 1018 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
@@ -1021,13 +1021,13 @@ discard block |
||
| 1021 | 1021 | public function createNOTAMtextFile($filename) { |
| 1022 | 1022 | $allnotam_result = $this->getAllNOTAMtext(); |
| 1023 | 1023 | $notamtext = ''; |
| 1024 | - foreach($allnotam_result as $notam) { |
|
| 1024 | + foreach ($allnotam_result as $notam) { |
|
| 1025 | 1025 | $notamtext .= '%%'."\n"; |
| 1026 | 1026 | $notamtext .= $notam['full_notam']; |
| 1027 | 1027 | $notamtext .= "\n".'%%'."\n"; |
| 1028 | 1028 | } |
| 1029 | 1029 | //$allnotam = implode('\n%%%%\n',$allnotam_result); |
| 1030 | - file_put_contents($filename,$notamtext); |
|
| 1030 | + file_put_contents($filename, $notamtext); |
|
| 1031 | 1031 | } |
| 1032 | 1032 | public function parseNOTAMtextFile($filename) { |
| 1033 | 1033 | $data = file_get_contents($filename); |
@@ -1048,7 +1048,7 @@ discard block |
||
| 1048 | 1048 | try { |
| 1049 | 1049 | $sth = $this->db->prepare($query); |
| 1050 | 1050 | $sth->execute($query_values); |
| 1051 | - } catch(PDOException $e) { |
|
| 1051 | + } catch (PDOException $e) { |
|
| 1052 | 1052 | echo "error : ".$e->getMessage(); |
| 1053 | 1053 | } |
| 1054 | 1054 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
@@ -1057,10 +1057,10 @@ discard block |
||
| 1057 | 1057 | public function getAllNOTAMbyCoord($coord) { |
| 1058 | 1058 | global $globalDBdriver; |
| 1059 | 1059 | if (is_array($coord)) { |
| 1060 | - $minlong = filter_var($coord[0],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1061 | - $minlat = filter_var($coord[1],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1062 | - $maxlong = filter_var($coord[2],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1063 | - $maxlat = filter_var($coord[3],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1060 | + $minlong = filter_var($coord[0], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1061 | + $minlat = filter_var($coord[1], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1062 | + $maxlong = filter_var($coord[2], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1063 | + $maxlat = filter_var($coord[3], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1064 | 1064 | if ($minlat > $maxlat) { |
| 1065 | 1065 | $tmplat = $minlat; |
| 1066 | 1066 | $minlat = $maxlat; |
@@ -1082,19 +1082,19 @@ discard block |
||
| 1082 | 1082 | try { |
| 1083 | 1083 | $sth = $this->db->prepare($query); |
| 1084 | 1084 | $sth->execute($query_values); |
| 1085 | - } catch(PDOException $e) { |
|
| 1085 | + } catch (PDOException $e) { |
|
| 1086 | 1086 | echo "error : ".$e->getMessage(); |
| 1087 | 1087 | } |
| 1088 | 1088 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
| 1089 | 1089 | return $all; |
| 1090 | 1090 | } |
| 1091 | - public function getAllNOTAMbyCoordScope($coord,$scope) { |
|
| 1091 | + public function getAllNOTAMbyCoordScope($coord, $scope) { |
|
| 1092 | 1092 | global $globalDBdriver; |
| 1093 | 1093 | if (is_array($coord)) { |
| 1094 | - $minlong = filter_var($coord[0],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1095 | - $minlat = filter_var($coord[1],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1096 | - $maxlong = filter_var($coord[2],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1097 | - $maxlat = filter_var($coord[3],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
|
| 1094 | + $minlong = filter_var($coord[0], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1095 | + $minlat = filter_var($coord[1], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1096 | + $maxlong = filter_var($coord[2], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1097 | + $maxlat = filter_var($coord[3], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); |
|
| 1098 | 1098 | } else return array(); |
| 1099 | 1099 | if ($globalDBdriver == 'mysql') { |
| 1100 | 1100 | $query = 'SELECT * FROM notam WHERE center_latitude BETWEEN '.$minlat.' AND '.$maxlat.' AND center_longitude BETWEEN '.$minlong.' AND '.$maxlong.' AND radius > 0 AND date_end > UTC_TIMESTAMP() AND date_begin < UTC_TIMESTAMP() AND scope = :scope'; |
@@ -1106,7 +1106,7 @@ discard block |
||
| 1106 | 1106 | try { |
| 1107 | 1107 | $sth = $this->db->prepare($query); |
| 1108 | 1108 | $sth->execute($query_values); |
| 1109 | - } catch(PDOException $e) { |
|
| 1109 | + } catch (PDOException $e) { |
|
| 1110 | 1110 | echo "error : ".$e->getMessage(); |
| 1111 | 1111 | } |
| 1112 | 1112 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
@@ -1118,7 +1118,7 @@ discard block |
||
| 1118 | 1118 | try { |
| 1119 | 1119 | $sth = $this->db->prepare($query); |
| 1120 | 1120 | $sth->execute($query_values); |
| 1121 | - } catch(PDOException $e) { |
|
| 1121 | + } catch (PDOException $e) { |
|
| 1122 | 1122 | return "error : ".$e->getMessage(); |
| 1123 | 1123 | } |
| 1124 | 1124 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
@@ -1126,13 +1126,13 @@ discard block |
||
| 1126 | 1126 | else return array(); |
| 1127 | 1127 | } |
| 1128 | 1128 | |
| 1129 | - public function addNOTAM($ref,$title,$type,$fir,$code,$rules,$scope,$lower_limit,$upper_limit,$center_latitude,$center_longitude,$radius,$date_begin,$date_end,$permanent,$text,$full_notam) { |
|
| 1129 | + public function addNOTAM($ref, $title, $type, $fir, $code, $rules, $scope, $lower_limit, $upper_limit, $center_latitude, $center_longitude, $radius, $date_begin, $date_end, $permanent, $text, $full_notam) { |
|
| 1130 | 1130 | $query = "INSERT INTO notam (ref,title,notam_type,fir,code,rules,scope,lower_limit,upper_limit,center_latitude,center_longitude,radius,date_begin,date_end,permanent,notam_text,full_notam) VALUES (:ref,:title,:type,:fir,:code,:rules,:scope,:lower_limit,:upper_limit,:center_latitude,:center_longitude,:radius,:date_begin,:date_end,:permanent,:text,:full_notam)"; |
| 1131 | - $query_values = array(':ref' => $ref,':title' => $title,':type' => $type,':fir' => $fir,':code' => $code,':rules' => $rules,':scope' => $scope,':lower_limit' => $lower_limit,':upper_limit' => $upper_limit,':center_latitude' => $center_latitude,':center_longitude' => $center_longitude,':radius' => $radius,':date_begin' => $date_begin,':date_end' => $date_end,':permanent' => $permanent,':text' => $text,':full_notam' => $full_notam); |
|
| 1131 | + $query_values = array(':ref' => $ref, ':title' => $title, ':type' => $type, ':fir' => $fir, ':code' => $code, ':rules' => $rules, ':scope' => $scope, ':lower_limit' => $lower_limit, ':upper_limit' => $upper_limit, ':center_latitude' => $center_latitude, ':center_longitude' => $center_longitude, ':radius' => $radius, ':date_begin' => $date_begin, ':date_end' => $date_end, ':permanent' => $permanent, ':text' => $text, ':full_notam' => $full_notam); |
|
| 1132 | 1132 | try { |
| 1133 | 1133 | $sth = $this->db->prepare($query); |
| 1134 | 1134 | $sth->execute($query_values); |
| 1135 | - } catch(PDOException $e) { |
|
| 1135 | + } catch (PDOException $e) { |
|
| 1136 | 1136 | return "error : ".$e->getMessage(); |
| 1137 | 1137 | } |
| 1138 | 1138 | } |
@@ -1143,7 +1143,7 @@ discard block |
||
| 1143 | 1143 | try { |
| 1144 | 1144 | $sth = $this->db->prepare($query); |
| 1145 | 1145 | $sth->execute($query_values); |
| 1146 | - } catch(PDOException $e) { |
|
| 1146 | + } catch (PDOException $e) { |
|
| 1147 | 1147 | return "error : ".$e->getMessage(); |
| 1148 | 1148 | } |
| 1149 | 1149 | } |
@@ -1158,7 +1158,7 @@ discard block |
||
| 1158 | 1158 | try { |
| 1159 | 1159 | $sth = $this->db->prepare($query); |
| 1160 | 1160 | $sth->execute($query_values); |
| 1161 | - } catch(PDOException $e) { |
|
| 1161 | + } catch (PDOException $e) { |
|
| 1162 | 1162 | return "error : ".$e->getMessage(); |
| 1163 | 1163 | } |
| 1164 | 1164 | } |
@@ -1168,7 +1168,7 @@ discard block |
||
| 1168 | 1168 | try { |
| 1169 | 1169 | $sth = $this->db->prepare($query); |
| 1170 | 1170 | $sth->execute($query_values); |
| 1171 | - } catch(PDOException $e) { |
|
| 1171 | + } catch (PDOException $e) { |
|
| 1172 | 1172 | return "error : ".$e->getMessage(); |
| 1173 | 1173 | } |
| 1174 | 1174 | } |
@@ -1177,7 +1177,7 @@ discard block |
||
| 1177 | 1177 | try { |
| 1178 | 1178 | $sth = $this->db->prepare($query); |
| 1179 | 1179 | $sth->execute(); |
| 1180 | - } catch(PDOException $e) { |
|
| 1180 | + } catch (PDOException $e) { |
|
| 1181 | 1181 | return "error : ".$e->getMessage(); |
| 1182 | 1182 | } |
| 1183 | 1183 | } |
@@ -1186,7 +1186,7 @@ discard block |
||
| 1186 | 1186 | try { |
| 1187 | 1187 | $sth = $this->db->prepare($query); |
| 1188 | 1188 | $sth->execute(); |
| 1189 | - } catch(PDOException $e) { |
|
| 1189 | + } catch (PDOException $e) { |
|
| 1190 | 1190 | return "error : ".$e->getMessage(); |
| 1191 | 1191 | } |
| 1192 | 1192 | } |
@@ -1194,14 +1194,14 @@ discard block |
||
| 1194 | 1194 | public function updateNOTAM() { |
| 1195 | 1195 | global $globalNOTAMAirports; |
| 1196 | 1196 | if (isset($globalNOTAMAirports) && is_array($globalNOTAMAirports) && count($globalNOTAMAirports) > 0) { |
| 1197 | - foreach (array_chunk($globalNOTAMAirports,10) as $airport) { |
|
| 1198 | - $airport_icao = implode(',',$airport); |
|
| 1197 | + foreach (array_chunk($globalNOTAMAirports, 10) as $airport) { |
|
| 1198 | + $airport_icao = implode(',', $airport); |
|
| 1199 | 1199 | $alldata = $this->downloadNOTAM($airport_icao); |
| 1200 | 1200 | if (count($alldata) > 0) { |
| 1201 | 1201 | foreach ($alldata as $initial_data) { |
| 1202 | 1202 | $data = $this->parse($initial_data); |
| 1203 | 1203 | $notamref = $this->getNOTAMbyRef($data['ref']); |
| 1204 | - if (count($notamref) == 0) $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1204 | + if (count($notamref) == 0) $this->addNOTAM($data['ref'], $data['title'], '', $data['fir'], $data['code'], '', $data['scope'], $data['lower_limit'], $data['upper_limit'], $data['latitude'], $data['longitude'], $data['radius'], $data['date_begin'], $data['date_end'], $data['permanent'], $data['text'], $data['full_notam']); |
|
| 1205 | 1205 | } |
| 1206 | 1206 | } |
| 1207 | 1207 | } |
@@ -1214,7 +1214,7 @@ discard block |
||
| 1214 | 1214 | foreach ($alldata as $initial_data) { |
| 1215 | 1215 | $data = $this->parse($initial_data); |
| 1216 | 1216 | $notamref = $this->getNOTAMbyRef($data['ref']); |
| 1217 | - if (!isset($notamref['notam_id'])) $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1217 | + if (!isset($notamref['notam_id'])) $this->addNOTAM($data['ref'], $data['title'], '', $data['fir'], $data['code'], '', $data['scope'], $data['lower_limit'], $data['upper_limit'], $data['latitude'], $data['longitude'], $data['radius'], $data['date_begin'], $data['date_end'], $data['permanent'], $data['text'], $data['full_notam']); |
|
| 1218 | 1218 | } |
| 1219 | 1219 | } |
| 1220 | 1220 | } |
@@ -1223,12 +1223,12 @@ discard block |
||
| 1223 | 1223 | global $globalTransaction; |
| 1224 | 1224 | $Spotter = new Spotter(); |
| 1225 | 1225 | $allairports = $Spotter->getAllAirportInfo(); |
| 1226 | - foreach (array_chunk($allairports,20) as $airport) { |
|
| 1226 | + foreach (array_chunk($allairports, 20) as $airport) { |
|
| 1227 | 1227 | $airports_icao = array(); |
| 1228 | - foreach($airport as $icao) { |
|
| 1228 | + foreach ($airport as $icao) { |
|
| 1229 | 1229 | if (isset($icao['icao'])) $airports_icao[] = $icao['icao']; |
| 1230 | 1230 | } |
| 1231 | - $airport_icao = implode(',',$airports_icao); |
|
| 1231 | + $airport_icao = implode(',', $airports_icao); |
|
| 1232 | 1232 | $alldata = $this->downloadNOTAM($airport_icao); |
| 1233 | 1233 | if ($globalTransaction) $this->db->beginTransaction(); |
| 1234 | 1234 | if (count($alldata) > 0) { |
@@ -1241,7 +1241,7 @@ discard block |
||
| 1241 | 1241 | if (count($notamref) == 0) { |
| 1242 | 1242 | if (isset($data['ref_replaced'])) $this->deleteNOTAMbyRef($data['ref_replaced']); |
| 1243 | 1243 | if (isset($data['ref_cancelled'])) $this->deleteNOTAMbyRef($data['ref_cancelled']); |
| 1244 | - elseif (isset($data['latitude']) && isset($data['scope']) && isset($data['text']) && isset($data['permanent'])) echo $this->addNOTAM($data['ref'],'','',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1244 | + elseif (isset($data['latitude']) && isset($data['scope']) && isset($data['text']) && isset($data['permanent'])) echo $this->addNOTAM($data['ref'], '', '', $data['fir'], $data['code'], '', $data['scope'], $data['lower_limit'], $data['upper_limit'], $data['latitude'], $data['longitude'], $data['radius'], $data['date_begin'], $data['date_end'], $data['permanent'], $data['text'], $data['full_notam']); |
|
| 1245 | 1245 | } |
| 1246 | 1246 | } |
| 1247 | 1247 | } |
@@ -1255,7 +1255,7 @@ discard block |
||
| 1255 | 1255 | date_default_timezone_set("UTC"); |
| 1256 | 1256 | $Common = new Common(); |
| 1257 | 1257 | //$url = str_replace('{icao}',$icao,'https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs&reportType=RAW&formatType=DOMESTIC&retrieveLocId={icao}&actionType=notamRetrievalByICAOs'); |
| 1258 | - $url = str_replace('{icao}',$icao,'https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs&reportType=RAW&formatType=ICAO&retrieveLocId={icao}&actionType=notamRetrievalByICAOs'); |
|
| 1258 | + $url = str_replace('{icao}', $icao, 'https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs&reportType=RAW&formatType=ICAO&retrieveLocId={icao}&actionType=notamRetrievalByICAOs'); |
|
| 1259 | 1259 | $data = $Common->getData($url); |
| 1260 | 1260 | preg_match_all("/<pre>(.+?)<\/pre>/is", $data, $matches); |
| 1261 | 1261 | //print_r($matches); |
@@ -1267,14 +1267,14 @@ discard block |
||
| 1267 | 1267 | $Common = new Common(); |
| 1268 | 1268 | $result = array(); |
| 1269 | 1269 | $result['full_notam'] = $data; |
| 1270 | - $data = str_ireplace(array("\r","\n",'\r','\n'),' ',$data); |
|
| 1271 | - $data = preg_split('#(?=([A-Z]\)\s))#',$data); |
|
| 1270 | + $data = str_ireplace(array("\r", "\n", '\r', '\n'), ' ', $data); |
|
| 1271 | + $data = preg_split('#(?=([A-Z]\)\s))#', $data); |
|
| 1272 | 1272 | //print_r($data); |
| 1273 | 1273 | foreach ($data as $line) { |
| 1274 | 1274 | $line = trim($line); |
| 1275 | - if (preg_match('#Q\) (.*)#',$line,$matches)) { |
|
| 1276 | - $line = str_replace(' ','',$line); |
|
| 1277 | - if (preg_match('#Q\)([A-Z]{3,4})\/([A-Z]{5})\/(IV|I|V)\/([A-Z]{1,3})\/([A-Z]{1,2})\/([0-9]{3})\/([0-9]{3})\/([0-9]{4})(N|S)([0-9]{5})(E|W)([0-9]{3}|)#',$line,$matches)) { |
|
| 1275 | + if (preg_match('#Q\) (.*)#', $line, $matches)) { |
|
| 1276 | + $line = str_replace(' ', '', $line); |
|
| 1277 | + if (preg_match('#Q\)([A-Z]{3,4})\/([A-Z]{5})\/(IV|I|V)\/([A-Z]{1,3})\/([A-Z]{1,2})\/([0-9]{3})\/([0-9]{3})\/([0-9]{4})(N|S)([0-9]{5})(E|W)([0-9]{3}|)#', $line, $matches)) { |
|
| 1278 | 1278 | //if (preg_match('#Q\)([A-Z]{4})\/([A-Z]{5})\/(IV|I|V)\/([A-Z]{1,3})\/([A-Z]{1,2})\/([0-9]{3})\/([0-9]{3})\/([0-9]{4})(N|S)([0-9]{5})(E|W)([0-9]{3})#',$line,$matches)) { |
| 1279 | 1279 | //print_r($matches); |
| 1280 | 1280 | $result['fir'] = $matches[1]; |
@@ -1320,9 +1320,9 @@ discard block |
||
| 1320 | 1320 | elseif ($matches[5] == 'AW') $result['scope'] = 'Airport/Navigation warning'; |
| 1321 | 1321 | $result['lower_limit'] = $matches[6]; |
| 1322 | 1322 | $result['upper_limit'] = $matches[7]; |
| 1323 | - $latitude = $Common->convertDec($matches[8],'latitude'); |
|
| 1323 | + $latitude = $Common->convertDec($matches[8], 'latitude'); |
|
| 1324 | 1324 | if ($matches[9] == 'S') $latitude = -$latitude; |
| 1325 | - $longitude = $Common->convertDec($matches[10],'longitude'); |
|
| 1325 | + $longitude = $Common->convertDec($matches[10], 'longitude'); |
|
| 1326 | 1326 | if ($matches[11] == 'W') $longitude = -$longitude; |
| 1327 | 1327 | $result['latitude'] = $latitude; |
| 1328 | 1328 | $result['longitude'] = $longitude; |
@@ -1330,21 +1330,21 @@ discard block |
||
| 1330 | 1330 | else $result['radius'] = 0; |
| 1331 | 1331 | } else echo 'ERROR : '.$line."\n"; |
| 1332 | 1332 | } |
| 1333 | - elseif (preg_match('#A\) (.*)#',$line,$matches)) { |
|
| 1333 | + elseif (preg_match('#A\) (.*)#', $line, $matches)) { |
|
| 1334 | 1334 | $result['icao'] = $matches[1]; |
| 1335 | 1335 | } |
| 1336 | - elseif (preg_match('#B\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})#',$line,$matches)) { |
|
| 1336 | + elseif (preg_match('#B\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})#', $line, $matches)) { |
|
| 1337 | 1337 | if ($matches[1] > 50) $year = '19'.$matches[1]; |
| 1338 | 1338 | else $year = '20'.$matches[1]; |
| 1339 | 1339 | $result['date_begin'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
| 1340 | 1340 | } |
| 1341 | - elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$#',$line,$matches)) { |
|
| 1341 | + elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$#', $line, $matches)) { |
|
| 1342 | 1342 | if ($matches[1] > 50) $year = '19'.$matches[1]; |
| 1343 | 1343 | else $year = '20'.$matches[1]; |
| 1344 | 1344 | $result['date_end'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
| 1345 | 1345 | $result['permanent'] = 0; |
| 1346 | 1346 | } |
| 1347 | - elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}) (EST|PERM)$#',$line,$matches)) { |
|
| 1347 | + elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}) (EST|PERM)$#', $line, $matches)) { |
|
| 1348 | 1348 | if ($matches[1] > 50) $year = '19'.$matches[1]; |
| 1349 | 1349 | else $year = '20'.$matches[1]; |
| 1350 | 1350 | $result['date_end'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
@@ -1353,26 +1353,26 @@ discard block |
||
| 1353 | 1353 | if ($matches[6] == 'PERM') $result['permanent'] = 1; |
| 1354 | 1354 | else $result['permanent'] = 0; |
| 1355 | 1355 | } |
| 1356 | - elseif (preg_match('#C\) (EST|PERM)$#',$line,$matches)) { |
|
| 1356 | + elseif (preg_match('#C\) (EST|PERM)$#', $line, $matches)) { |
|
| 1357 | 1357 | $result['date_end'] = '2030/12/20 12:00'; |
| 1358 | 1358 | if ($matches[1] == 'EST') $result['estimated'] = 1; |
| 1359 | 1359 | else $result['estimated'] = 0; |
| 1360 | 1360 | if ($matches[1] == 'PERM') $result['permanent'] = 1; |
| 1361 | 1361 | else $result['permanent'] = 0; |
| 1362 | 1362 | } |
| 1363 | - elseif (preg_match('#E\) (.*)#',$line,$matches)) { |
|
| 1363 | + elseif (preg_match('#E\) (.*)#', $line, $matches)) { |
|
| 1364 | 1364 | $rtext = array(); |
| 1365 | - $text = explode(' ',$matches[1]); |
|
| 1365 | + $text = explode(' ', $matches[1]); |
|
| 1366 | 1366 | foreach ($text as $word) { |
| 1367 | 1367 | if (isset($this->abbr[$word])) $rtext[] = strtoupper($this->abbr[$word]); |
| 1368 | - elseif (ctype_digit(strval(substr($word,3))) && isset($this->abbr[substr($word,0,3)])) $rtext[] = strtoupper($this->abbr[substr($word,0,3)]).' '.substr($word,3); |
|
| 1368 | + elseif (ctype_digit(strval(substr($word, 3))) && isset($this->abbr[substr($word, 0, 3)])) $rtext[] = strtoupper($this->abbr[substr($word, 0, 3)]).' '.substr($word, 3); |
|
| 1369 | 1369 | else $rtext[] = $word; |
| 1370 | 1370 | } |
| 1371 | - $result['text'] = implode(' ',$rtext); |
|
| 1371 | + $result['text'] = implode(' ', $rtext); |
|
| 1372 | 1372 | //} elseif (preg_match('#F\) (.*)#',$line,$matches)) { |
| 1373 | 1373 | //} elseif (preg_match('#G\) (.*)#',$line,$matches)) { |
| 1374 | - } elseif (preg_match('#(NOTAMN|NOTAMR|NOTAMC)#',$line,$matches)) { |
|
| 1375 | - $text = explode(' ',$line); |
|
| 1374 | + } elseif (preg_match('#(NOTAMN|NOTAMR|NOTAMC)#', $line, $matches)) { |
|
| 1375 | + $text = explode(' ', $line); |
|
| 1376 | 1376 | $result['ref'] = $text[0]; |
| 1377 | 1377 | if ($matches[1] == 'NOTAMN') $result['type'] = 'new'; |
| 1378 | 1378 | if ($matches[1] == 'NOTAMC') { |
@@ -1033,8 +1033,11 @@ discard block |
||
| 1033 | 1033 | $data = file_get_contents($filename); |
| 1034 | 1034 | preg_match_all("/%%(.+?)%%/is", $data, $matches); |
| 1035 | 1035 | //print_r($matches); |
| 1036 | - if (isset($matches[1])) return $matches[1]; |
|
| 1037 | - else return array(); |
|
| 1036 | + if (isset($matches[1])) { |
|
| 1037 | + return $matches[1]; |
|
| 1038 | + } else { |
|
| 1039 | + return array(); |
|
| 1040 | + } |
|
| 1038 | 1041 | } |
| 1039 | 1042 | public function getAllNOTAMbyScope($scope) { |
| 1040 | 1043 | global $globalDBdriver; |
@@ -1071,7 +1074,9 @@ discard block |
||
| 1071 | 1074 | $minlong = $maxlong; |
| 1072 | 1075 | $maxlong = $tmplong; |
| 1073 | 1076 | } |
| 1074 | - } else return array(); |
|
| 1077 | + } else { |
|
| 1078 | + return array(); |
|
| 1079 | + } |
|
| 1075 | 1080 | if ($globalDBdriver == 'mysql') { |
| 1076 | 1081 | $query = 'SELECT * FROM notam WHERE center_latitude BETWEEN '.$minlat.' AND '.$maxlat.' AND center_longitude BETWEEN '.$minlong.' AND '.$maxlong.' AND radius > 0 AND date_end > UTC_TIMESTAMP() AND date_begin < UTC_TIMESTAMP()'; |
| 1077 | 1082 | } else { |
@@ -1095,7 +1100,9 @@ discard block |
||
| 1095 | 1100 | $minlat = filter_var($coord[1],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
| 1096 | 1101 | $maxlong = filter_var($coord[2],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
| 1097 | 1102 | $maxlat = filter_var($coord[3],FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); |
| 1098 | - } else return array(); |
|
| 1103 | + } else { |
|
| 1104 | + return array(); |
|
| 1105 | + } |
|
| 1099 | 1106 | if ($globalDBdriver == 'mysql') { |
| 1100 | 1107 | $query = 'SELECT * FROM notam WHERE center_latitude BETWEEN '.$minlat.' AND '.$maxlat.' AND center_longitude BETWEEN '.$minlong.' AND '.$maxlong.' AND radius > 0 AND date_end > UTC_TIMESTAMP() AND date_begin < UTC_TIMESTAMP() AND scope = :scope'; |
| 1101 | 1108 | } else { |
@@ -1122,8 +1129,11 @@ discard block |
||
| 1122 | 1129 | return "error : ".$e->getMessage(); |
| 1123 | 1130 | } |
| 1124 | 1131 | $all = $sth->fetchAll(PDO::FETCH_ASSOC); |
| 1125 | - if (isset($all[0])) return $all[0]; |
|
| 1126 | - else return array(); |
|
| 1132 | + if (isset($all[0])) { |
|
| 1133 | + return $all[0]; |
|
| 1134 | + } else { |
|
| 1135 | + return array(); |
|
| 1136 | + } |
|
| 1127 | 1137 | } |
| 1128 | 1138 | |
| 1129 | 1139 | public function addNOTAM($ref,$title,$type,$fir,$code,$rules,$scope,$lower_limit,$upper_limit,$center_latitude,$center_longitude,$radius,$date_begin,$date_end,$permanent,$text,$full_notam) { |
@@ -1201,7 +1211,9 @@ discard block |
||
| 1201 | 1211 | foreach ($alldata as $initial_data) { |
| 1202 | 1212 | $data = $this->parse($initial_data); |
| 1203 | 1213 | $notamref = $this->getNOTAMbyRef($data['ref']); |
| 1204 | - if (count($notamref) == 0) $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1214 | + if (count($notamref) == 0) { |
|
| 1215 | + $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1216 | + } |
|
| 1205 | 1217 | } |
| 1206 | 1218 | } |
| 1207 | 1219 | } |
@@ -1214,7 +1226,9 @@ discard block |
||
| 1214 | 1226 | foreach ($alldata as $initial_data) { |
| 1215 | 1227 | $data = $this->parse($initial_data); |
| 1216 | 1228 | $notamref = $this->getNOTAMbyRef($data['ref']); |
| 1217 | - if (!isset($notamref['notam_id'])) $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1229 | + if (!isset($notamref['notam_id'])) { |
|
| 1230 | + $this->addNOTAM($data['ref'],$data['title'],'',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1231 | + } |
|
| 1218 | 1232 | } |
| 1219 | 1233 | } |
| 1220 | 1234 | } |
@@ -1226,11 +1240,15 @@ discard block |
||
| 1226 | 1240 | foreach (array_chunk($allairports,20) as $airport) { |
| 1227 | 1241 | $airports_icao = array(); |
| 1228 | 1242 | foreach($airport as $icao) { |
| 1229 | - if (isset($icao['icao'])) $airports_icao[] = $icao['icao']; |
|
| 1243 | + if (isset($icao['icao'])) { |
|
| 1244 | + $airports_icao[] = $icao['icao']; |
|
| 1245 | + } |
|
| 1230 | 1246 | } |
| 1231 | 1247 | $airport_icao = implode(',',$airports_icao); |
| 1232 | 1248 | $alldata = $this->downloadNOTAM($airport_icao); |
| 1233 | - if ($globalTransaction) $this->db->beginTransaction(); |
|
| 1249 | + if ($globalTransaction) { |
|
| 1250 | + $this->db->beginTransaction(); |
|
| 1251 | + } |
|
| 1234 | 1252 | if (count($alldata) > 0) { |
| 1235 | 1253 | foreach ($alldata as $initial_data) { |
| 1236 | 1254 | //print_r($initial_data); |
@@ -1239,14 +1257,23 @@ discard block |
||
| 1239 | 1257 | if (isset($data['ref'])) { |
| 1240 | 1258 | $notamref = $this->getNOTAMbyRef($data['ref']); |
| 1241 | 1259 | if (count($notamref) == 0) { |
| 1242 | - if (isset($data['ref_replaced'])) $this->deleteNOTAMbyRef($data['ref_replaced']); |
|
| 1243 | - if (isset($data['ref_cancelled'])) $this->deleteNOTAMbyRef($data['ref_cancelled']); |
|
| 1244 | - elseif (isset($data['latitude']) && isset($data['scope']) && isset($data['text']) && isset($data['permanent'])) echo $this->addNOTAM($data['ref'],'','',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1260 | + if (isset($data['ref_replaced'])) { |
|
| 1261 | + $this->deleteNOTAMbyRef($data['ref_replaced']); |
|
| 1262 | + } |
|
| 1263 | + if (isset($data['ref_cancelled'])) { |
|
| 1264 | + $this->deleteNOTAMbyRef($data['ref_cancelled']); |
|
| 1265 | + } elseif (isset($data['latitude']) && isset($data['scope']) && isset($data['text']) && isset($data['permanent'])) { |
|
| 1266 | + echo $this->addNOTAM($data['ref'],'','',$data['fir'],$data['code'],'',$data['scope'],$data['lower_limit'],$data['upper_limit'],$data['latitude'],$data['longitude'],$data['radius'],$data['date_begin'],$data['date_end'],$data['permanent'],$data['text'],$data['full_notam']); |
|
| 1267 | + } |
|
| 1245 | 1268 | } |
| 1246 | 1269 | } |
| 1247 | 1270 | } |
| 1248 | - } else echo 'Error on download. Nothing matches for '.$airport_icao."\n"; |
|
| 1249 | - if ($globalTransaction) $this->db->commit(); |
|
| 1271 | + } else { |
|
| 1272 | + echo 'Error on download. Nothing matches for '.$airport_icao."\n"; |
|
| 1273 | + } |
|
| 1274 | + if ($globalTransaction) { |
|
| 1275 | + $this->db->commit(); |
|
| 1276 | + } |
|
| 1250 | 1277 | sleep(5); |
| 1251 | 1278 | } |
| 1252 | 1279 | } |
@@ -1259,8 +1286,11 @@ discard block |
||
| 1259 | 1286 | $data = $Common->getData($url); |
| 1260 | 1287 | preg_match_all("/<pre>(.+?)<\/pre>/is", $data, $matches); |
| 1261 | 1288 | //print_r($matches); |
| 1262 | - if (isset($matches[1])) return $matches[1]; |
|
| 1263 | - else return array(); |
|
| 1289 | + if (isset($matches[1])) { |
|
| 1290 | + return $matches[1]; |
|
| 1291 | + } else { |
|
| 1292 | + return array(); |
|
| 1293 | + } |
|
| 1264 | 1294 | } |
| 1265 | 1295 | |
| 1266 | 1296 | public function parse($data) { |
@@ -1283,90 +1313,149 @@ discard block |
||
| 1283 | 1313 | $rules = str_split($matches[3]); |
| 1284 | 1314 | foreach ($rules as $rule) { |
| 1285 | 1315 | if ($rule == 'I') { |
| 1286 | - if (isset($result['rules'])) $result['rules'] = $result['rules'].'/IFR'; |
|
| 1287 | - else $result['rules'] = 'IFR'; |
|
| 1316 | + if (isset($result['rules'])) { |
|
| 1317 | + $result['rules'] = $result['rules'].'/IFR'; |
|
| 1318 | + } else { |
|
| 1319 | + $result['rules'] = 'IFR'; |
|
| 1320 | + } |
|
| 1288 | 1321 | } elseif ($rule == 'V') { |
| 1289 | - if (isset($result['rules'])) $result['rules'] = $result['rules'].'/VFR'; |
|
| 1290 | - else $result['rules'] = 'VFR'; |
|
| 1322 | + if (isset($result['rules'])) { |
|
| 1323 | + $result['rules'] = $result['rules'].'/VFR'; |
|
| 1324 | + } else { |
|
| 1325 | + $result['rules'] = 'VFR'; |
|
| 1326 | + } |
|
| 1291 | 1327 | } elseif ($rule == 'K') { |
| 1292 | - if (isset($result['rules'])) $result['rules'] = $result['rules'].'/Checklist'; |
|
| 1293 | - else $result['rules'] = 'Checklist'; |
|
| 1328 | + if (isset($result['rules'])) { |
|
| 1329 | + $result['rules'] = $result['rules'].'/Checklist'; |
|
| 1330 | + } else { |
|
| 1331 | + $result['rules'] = 'Checklist'; |
|
| 1332 | + } |
|
| 1294 | 1333 | } |
| 1295 | 1334 | } |
| 1296 | 1335 | $attentions = str_split($matches[4]); |
| 1297 | 1336 | foreach ($attentions as $attention) { |
| 1298 | 1337 | if ($attention == 'N') { |
| 1299 | - if (isset($result['attention'])) $result['attention'] = $result['attention'].' / Immediate attention'; |
|
| 1300 | - else $result['rules'] = 'Immediate attention'; |
|
| 1338 | + if (isset($result['attention'])) { |
|
| 1339 | + $result['attention'] = $result['attention'].' / Immediate attention'; |
|
| 1340 | + } else { |
|
| 1341 | + $result['rules'] = 'Immediate attention'; |
|
| 1342 | + } |
|
| 1301 | 1343 | } elseif ($attention == 'B') { |
| 1302 | - if (isset($result['attention'])) $result['attention'] = $result['attention'].' / Operational significance'; |
|
| 1303 | - else $result['rules'] = 'Operational significance'; |
|
| 1344 | + if (isset($result['attention'])) { |
|
| 1345 | + $result['attention'] = $result['attention'].' / Operational significance'; |
|
| 1346 | + } else { |
|
| 1347 | + $result['rules'] = 'Operational significance'; |
|
| 1348 | + } |
|
| 1304 | 1349 | } elseif ($attention == 'O') { |
| 1305 | - if (isset($result['attention'])) $result['attention'] = $result['attention'].' / Flight operations'; |
|
| 1306 | - else $result['rules'] = 'Flight operations'; |
|
| 1350 | + if (isset($result['attention'])) { |
|
| 1351 | + $result['attention'] = $result['attention'].' / Flight operations'; |
|
| 1352 | + } else { |
|
| 1353 | + $result['rules'] = 'Flight operations'; |
|
| 1354 | + } |
|
| 1307 | 1355 | } elseif ($attention == 'M') { |
| 1308 | - if (isset($result['attention'])) $result['attention'] = $result['attention'].' / Misc'; |
|
| 1309 | - else $result['rules'] = 'Misc'; |
|
| 1356 | + if (isset($result['attention'])) { |
|
| 1357 | + $result['attention'] = $result['attention'].' / Misc'; |
|
| 1358 | + } else { |
|
| 1359 | + $result['rules'] = 'Misc'; |
|
| 1360 | + } |
|
| 1310 | 1361 | } elseif ($attention == 'K') { |
| 1311 | - if (isset($result['attention'])) $result['attention'] = $result['attention'].' / Checklist'; |
|
| 1312 | - else $result['rules'] = 'Checklist'; |
|
| 1362 | + if (isset($result['attention'])) { |
|
| 1363 | + $result['attention'] = $result['attention'].' / Checklist'; |
|
| 1364 | + } else { |
|
| 1365 | + $result['rules'] = 'Checklist'; |
|
| 1366 | + } |
|
| 1313 | 1367 | } |
| 1314 | 1368 | } |
| 1315 | - if ($matches[5] == 'A') $result['scope'] = 'Airport warning'; |
|
| 1316 | - elseif ($matches[5] == 'E') $result['scope'] = 'Enroute warning'; |
|
| 1317 | - elseif ($matches[5] == 'W') $result['scope'] = 'Navigation warning'; |
|
| 1318 | - elseif ($matches[5] == 'K') $result['scope'] = 'Checklist'; |
|
| 1319 | - elseif ($matches[5] == 'AE') $result['scope'] = 'Airport/Enroute warning'; |
|
| 1320 | - elseif ($matches[5] == 'AW') $result['scope'] = 'Airport/Navigation warning'; |
|
| 1369 | + if ($matches[5] == 'A') { |
|
| 1370 | + $result['scope'] = 'Airport warning'; |
|
| 1371 | + } elseif ($matches[5] == 'E') { |
|
| 1372 | + $result['scope'] = 'Enroute warning'; |
|
| 1373 | + } elseif ($matches[5] == 'W') { |
|
| 1374 | + $result['scope'] = 'Navigation warning'; |
|
| 1375 | + } elseif ($matches[5] == 'K') { |
|
| 1376 | + $result['scope'] = 'Checklist'; |
|
| 1377 | + } elseif ($matches[5] == 'AE') { |
|
| 1378 | + $result['scope'] = 'Airport/Enroute warning'; |
|
| 1379 | + } elseif ($matches[5] == 'AW') { |
|
| 1380 | + $result['scope'] = 'Airport/Navigation warning'; |
|
| 1381 | + } |
|
| 1321 | 1382 | $result['lower_limit'] = $matches[6]; |
| 1322 | 1383 | $result['upper_limit'] = $matches[7]; |
| 1323 | 1384 | $latitude = $Common->convertDec($matches[8],'latitude'); |
| 1324 | - if ($matches[9] == 'S') $latitude = -$latitude; |
|
| 1385 | + if ($matches[9] == 'S') { |
|
| 1386 | + $latitude = -$latitude; |
|
| 1387 | + } |
|
| 1325 | 1388 | $longitude = $Common->convertDec($matches[10],'longitude'); |
| 1326 | - if ($matches[11] == 'W') $longitude = -$longitude; |
|
| 1389 | + if ($matches[11] == 'W') { |
|
| 1390 | + $longitude = -$longitude; |
|
| 1391 | + } |
|
| 1327 | 1392 | $result['latitude'] = $latitude; |
| 1328 | 1393 | $result['longitude'] = $longitude; |
| 1329 | - if ($matches[12] != '') $result['radius'] = intval($matches[12]); |
|
| 1330 | - else $result['radius'] = 0; |
|
| 1331 | - } else echo 'ERROR : '.$line."\n"; |
|
| 1332 | - } |
|
| 1333 | - elseif (preg_match('#A\) (.*)#',$line,$matches)) { |
|
| 1394 | + if ($matches[12] != '') { |
|
| 1395 | + $result['radius'] = intval($matches[12]); |
|
| 1396 | + } else { |
|
| 1397 | + $result['radius'] = 0; |
|
| 1398 | + } |
|
| 1399 | + } else { |
|
| 1400 | + echo 'ERROR : '.$line."\n"; |
|
| 1401 | + } |
|
| 1402 | + } elseif (preg_match('#A\) (.*)#',$line,$matches)) { |
|
| 1334 | 1403 | $result['icao'] = $matches[1]; |
| 1335 | - } |
|
| 1336 | - elseif (preg_match('#B\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})#',$line,$matches)) { |
|
| 1337 | - if ($matches[1] > 50) $year = '19'.$matches[1]; |
|
| 1338 | - else $year = '20'.$matches[1]; |
|
| 1404 | + } elseif (preg_match('#B\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})#',$line,$matches)) { |
|
| 1405 | + if ($matches[1] > 50) { |
|
| 1406 | + $year = '19'.$matches[1]; |
|
| 1407 | + } else { |
|
| 1408 | + $year = '20'.$matches[1]; |
|
| 1409 | + } |
|
| 1339 | 1410 | $result['date_begin'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
| 1340 | - } |
|
| 1341 | - elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$#',$line,$matches)) { |
|
| 1342 | - if ($matches[1] > 50) $year = '19'.$matches[1]; |
|
| 1343 | - else $year = '20'.$matches[1]; |
|
| 1411 | + } elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$#',$line,$matches)) { |
|
| 1412 | + if ($matches[1] > 50) { |
|
| 1413 | + $year = '19'.$matches[1]; |
|
| 1414 | + } else { |
|
| 1415 | + $year = '20'.$matches[1]; |
|
| 1416 | + } |
|
| 1344 | 1417 | $result['date_end'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
| 1345 | 1418 | $result['permanent'] = 0; |
| 1346 | - } |
|
| 1347 | - elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}) (EST|PERM)$#',$line,$matches)) { |
|
| 1348 | - if ($matches[1] > 50) $year = '19'.$matches[1]; |
|
| 1349 | - else $year = '20'.$matches[1]; |
|
| 1419 | + } elseif (preg_match('#C\) ([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}) (EST|PERM)$#',$line,$matches)) { |
|
| 1420 | + if ($matches[1] > 50) { |
|
| 1421 | + $year = '19'.$matches[1]; |
|
| 1422 | + } else { |
|
| 1423 | + $year = '20'.$matches[1]; |
|
| 1424 | + } |
|
| 1350 | 1425 | $result['date_end'] = $year.'/'.$matches[2].'/'.$matches[3].' '.$matches[4].':'.$matches[5]; |
| 1351 | - if ($matches[6] == 'EST') $result['estimated'] = 1; |
|
| 1352 | - else $result['estimated'] = 0; |
|
| 1353 | - if ($matches[6] == 'PERM') $result['permanent'] = 1; |
|
| 1354 | - else $result['permanent'] = 0; |
|
| 1355 | - } |
|
| 1356 | - elseif (preg_match('#C\) (EST|PERM)$#',$line,$matches)) { |
|
| 1426 | + if ($matches[6] == 'EST') { |
|
| 1427 | + $result['estimated'] = 1; |
|
| 1428 | + } else { |
|
| 1429 | + $result['estimated'] = 0; |
|
| 1430 | + } |
|
| 1431 | + if ($matches[6] == 'PERM') { |
|
| 1432 | + $result['permanent'] = 1; |
|
| 1433 | + } else { |
|
| 1434 | + $result['permanent'] = 0; |
|
| 1435 | + } |
|
| 1436 | + } elseif (preg_match('#C\) (EST|PERM)$#',$line,$matches)) { |
|
| 1357 | 1437 | $result['date_end'] = '2030/12/20 12:00'; |
| 1358 | - if ($matches[1] == 'EST') $result['estimated'] = 1; |
|
| 1359 | - else $result['estimated'] = 0; |
|
| 1360 | - if ($matches[1] == 'PERM') $result['permanent'] = 1; |
|
| 1361 | - else $result['permanent'] = 0; |
|
| 1362 | - } |
|
| 1363 | - elseif (preg_match('#E\) (.*)#',$line,$matches)) { |
|
| 1438 | + if ($matches[1] == 'EST') { |
|
| 1439 | + $result['estimated'] = 1; |
|
| 1440 | + } else { |
|
| 1441 | + $result['estimated'] = 0; |
|
| 1442 | + } |
|
| 1443 | + if ($matches[1] == 'PERM') { |
|
| 1444 | + $result['permanent'] = 1; |
|
| 1445 | + } else { |
|
| 1446 | + $result['permanent'] = 0; |
|
| 1447 | + } |
|
| 1448 | + } elseif (preg_match('#E\) (.*)#',$line,$matches)) { |
|
| 1364 | 1449 | $rtext = array(); |
| 1365 | 1450 | $text = explode(' ',$matches[1]); |
| 1366 | 1451 | foreach ($text as $word) { |
| 1367 | - if (isset($this->abbr[$word])) $rtext[] = strtoupper($this->abbr[$word]); |
|
| 1368 | - elseif (ctype_digit(strval(substr($word,3))) && isset($this->abbr[substr($word,0,3)])) $rtext[] = strtoupper($this->abbr[substr($word,0,3)]).' '.substr($word,3); |
|
| 1369 | - else $rtext[] = $word; |
|
| 1452 | + if (isset($this->abbr[$word])) { |
|
| 1453 | + $rtext[] = strtoupper($this->abbr[$word]); |
|
| 1454 | + } elseif (ctype_digit(strval(substr($word,3))) && isset($this->abbr[substr($word,0,3)])) { |
|
| 1455 | + $rtext[] = strtoupper($this->abbr[substr($word,0,3)]).' '.substr($word,3); |
|
| 1456 | + } else { |
|
| 1457 | + $rtext[] = $word; |
|
| 1458 | + } |
|
| 1370 | 1459 | } |
| 1371 | 1460 | $result['text'] = implode(' ',$rtext); |
| 1372 | 1461 | //} elseif (preg_match('#F\) (.*)#',$line,$matches)) { |
@@ -1374,7 +1463,9 @@ discard block |
||
| 1374 | 1463 | } elseif (preg_match('#(NOTAMN|NOTAMR|NOTAMC)#',$line,$matches)) { |
| 1375 | 1464 | $text = explode(' ',$line); |
| 1376 | 1465 | $result['ref'] = $text[0]; |
| 1377 | - if ($matches[1] == 'NOTAMN') $result['type'] = 'new'; |
|
| 1466 | + if ($matches[1] == 'NOTAMN') { |
|
| 1467 | + $result['type'] = 'new'; |
|
| 1468 | + } |
|
| 1378 | 1469 | if ($matches[1] == 'NOTAMC') { |
| 1379 | 1470 | $result['type'] = 'cancel'; |
| 1380 | 1471 | $result['ref_cancelled'] = $text[2]; |
@@ -1396,69 +1487,101 @@ discard block |
||
| 1396 | 1487 | switch ($code[1]) { |
| 1397 | 1488 | case 'A': |
| 1398 | 1489 | $result = 'Airspace organization '; |
| 1399 | - if (isset($this->code_airspace[$code_fp])) $result .= $this->code_airspace[$code_fp]; |
|
| 1490 | + if (isset($this->code_airspace[$code_fp])) { |
|
| 1491 | + $result .= $this->code_airspace[$code_fp]; |
|
| 1492 | + } |
|
| 1400 | 1493 | break; |
| 1401 | 1494 | case 'C': |
| 1402 | 1495 | $result = 'Communications and radar facilities '; |
| 1403 | - if (isset($this->code_comradar[$code_fp])) $result .= $this->code_comradar[$code_fp]; |
|
| 1496 | + if (isset($this->code_comradar[$code_fp])) { |
|
| 1497 | + $result .= $this->code_comradar[$code_fp]; |
|
| 1498 | + } |
|
| 1404 | 1499 | break; |
| 1405 | 1500 | case 'F': |
| 1406 | 1501 | $result = 'Facilities and services '; |
| 1407 | - if (isset($this->code_facilities[$code_fp])) $result .= $this->code_facilities[$code_fp]; |
|
| 1502 | + if (isset($this->code_facilities[$code_fp])) { |
|
| 1503 | + $result .= $this->code_facilities[$code_fp]; |
|
| 1504 | + } |
|
| 1408 | 1505 | break; |
| 1409 | 1506 | case 'I': |
| 1410 | 1507 | $result = 'Instrument and Microwave Landing System '; |
| 1411 | - if (isset($this->code_instrumentlanding[$code_fp])) $result .= $this->code_instrumentlanding[$code_fp]; |
|
| 1508 | + if (isset($this->code_instrumentlanding[$code_fp])) { |
|
| 1509 | + $result .= $this->code_instrumentlanding[$code_fp]; |
|
| 1510 | + } |
|
| 1412 | 1511 | break; |
| 1413 | 1512 | case 'L': |
| 1414 | 1513 | $result = 'Lighting facilities '; |
| 1415 | - if (isset($this->code_lightingfacilities[$code_fp])) $result .= $this->code_lightingfacilities[$code_fp]; |
|
| 1514 | + if (isset($this->code_lightingfacilities[$code_fp])) { |
|
| 1515 | + $result .= $this->code_lightingfacilities[$code_fp]; |
|
| 1516 | + } |
|
| 1416 | 1517 | break; |
| 1417 | 1518 | case 'M': |
| 1418 | 1519 | $result = 'Movement and landing areas '; |
| 1419 | - if (isset($this->code_movementareas[$code_fp])) $result .= $this->code_movementareas[$code_fp]; |
|
| 1520 | + if (isset($this->code_movementareas[$code_fp])) { |
|
| 1521 | + $result .= $this->code_movementareas[$code_fp]; |
|
| 1522 | + } |
|
| 1420 | 1523 | break; |
| 1421 | 1524 | case 'N': |
| 1422 | 1525 | $result = 'Terminal and En Route Navigation Facilities '; |
| 1423 | - if (isset($this->code_terminalfacilities[$code_fp])) $result .= $this->code_terminalfacilities[$code_fp]; |
|
| 1526 | + if (isset($this->code_terminalfacilities[$code_fp])) { |
|
| 1527 | + $result .= $this->code_terminalfacilities[$code_fp]; |
|
| 1528 | + } |
|
| 1424 | 1529 | break; |
| 1425 | 1530 | case 'O': |
| 1426 | 1531 | $result = 'Other information '; |
| 1427 | - if (isset($this->code_information[$code_fp])) $result .= $this->code_information[$code_fp]; |
|
| 1532 | + if (isset($this->code_information[$code_fp])) { |
|
| 1533 | + $result .= $this->code_information[$code_fp]; |
|
| 1534 | + } |
|
| 1428 | 1535 | break; |
| 1429 | 1536 | case 'P': |
| 1430 | 1537 | $result = 'Air Traffic procedures '; |
| 1431 | - if (isset($this->code_airtraffic[$code_fp])) $result .= $this->code_airtraffic[$code_fp]; |
|
| 1538 | + if (isset($this->code_airtraffic[$code_fp])) { |
|
| 1539 | + $result .= $this->code_airtraffic[$code_fp]; |
|
| 1540 | + } |
|
| 1432 | 1541 | break; |
| 1433 | 1542 | case 'R': |
| 1434 | 1543 | $result = 'Navigation Warnings: Airspace Restrictions '; |
| 1435 | - if (isset($this->code_navigationw[$code_fp])) $result .= $this->code_navigationw[$code_fp]; |
|
| 1544 | + if (isset($this->code_navigationw[$code_fp])) { |
|
| 1545 | + $result .= $this->code_navigationw[$code_fp]; |
|
| 1546 | + } |
|
| 1436 | 1547 | break; |
| 1437 | 1548 | case 'S': |
| 1438 | 1549 | $result = 'Air Traffic and VOLMET Services '; |
| 1439 | - if (isset($this->code_volmet[$code_fp])) $result .= $this->code_volmet[$code_fp]; |
|
| 1550 | + if (isset($this->code_volmet[$code_fp])) { |
|
| 1551 | + $result .= $this->code_volmet[$code_fp]; |
|
| 1552 | + } |
|
| 1440 | 1553 | break; |
| 1441 | 1554 | case 'W': |
| 1442 | 1555 | $result = 'Navigation Warnings: Warnings '; |
| 1443 | - if (isset($this->code_warnings[$code_fp])) $result .= $this->code_warnings[$code_fp]; |
|
| 1556 | + if (isset($this->code_warnings[$code_fp])) { |
|
| 1557 | + $result .= $this->code_warnings[$code_fp]; |
|
| 1558 | + } |
|
| 1444 | 1559 | break; |
| 1445 | 1560 | } |
| 1446 | 1561 | switch ($code[3]) { |
| 1447 | 1562 | case 'A': |
| 1448 | 1563 | // Availability |
| 1449 | - if (isset($this->code_sp_availabity[$code_sp])) $result .= ' '.$this->code_sp_availabity[$code_sp]; |
|
| 1564 | + if (isset($this->code_sp_availabity[$code_sp])) { |
|
| 1565 | + $result .= ' '.$this->code_sp_availabity[$code_sp]; |
|
| 1566 | + } |
|
| 1450 | 1567 | break; |
| 1451 | 1568 | case 'C': |
| 1452 | 1569 | // Changes |
| 1453 | - if (isset($this->code_sp_changes[$code_sp])) $result .= ' '.$this->code_sp_changes[$code_sp]; |
|
| 1570 | + if (isset($this->code_sp_changes[$code_sp])) { |
|
| 1571 | + $result .= ' '.$this->code_sp_changes[$code_sp]; |
|
| 1572 | + } |
|
| 1454 | 1573 | break; |
| 1455 | 1574 | case 'H': |
| 1456 | 1575 | // Hazardous conditions |
| 1457 | - if (isset($this->code_sp_hazardous[$code_sp])) $result .= ' '.$this->code_sp_hazardous[$code_sp]; |
|
| 1576 | + if (isset($this->code_sp_hazardous[$code_sp])) { |
|
| 1577 | + $result .= ' '.$this->code_sp_hazardous[$code_sp]; |
|
| 1578 | + } |
|
| 1458 | 1579 | break; |
| 1459 | 1580 | case 'L': |
| 1460 | 1581 | // Limitations |
| 1461 | - if (isset($this->code_sp_limitations[$code_sp])) $result .= ' '.$this->code_sp_limitations[$code_sp]; |
|
| 1582 | + if (isset($this->code_sp_limitations[$code_sp])) { |
|
| 1583 | + $result .= ' '.$this->code_sp_limitations[$code_sp]; |
|
| 1584 | + } |
|
| 1462 | 1585 | break; |
| 1463 | 1586 | case 'X': |
| 1464 | 1587 | // Other Information |