Complex classes like update_db often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use update_db, and based on these observations, apply Extract Interface, too.
| 1 | <?php |
||
| 10 | class update_db { |
||
| 11 | public static $db_sqlite; |
||
| 12 | |||
| 13 | public static function download($url, $file, $referer = '') { |
||
| 14 | global $globalProxy, $globalForceIPv4; |
||
| 15 | $fp = fopen($file, 'w'); |
||
| 16 | $ch = curl_init(); |
||
| 17 | curl_setopt($ch, CURLOPT_URL, $url); |
||
| 18 | if (isset($globalForceIPv4) && $globalForceIPv4) { |
||
| 19 | if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')){ |
||
| 20 | curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); |
||
| 21 | } |
||
| 22 | } |
||
| 23 | if (isset($globalProxy) && $globalProxy != '') { |
||
| 24 | curl_setopt($ch, CURLOPT_PROXY, $globalProxy); |
||
| 25 | } |
||
| 26 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
||
| 27 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); |
||
| 28 | curl_setopt($ch, CURLOPT_TIMEOUT, 20); |
||
| 29 | if ($referer != '') curl_setopt($ch, CURLOPT_REFERER, $referer); |
||
| 30 | curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); |
||
| 31 | curl_setopt($ch, CURLOPT_FILE, $fp); |
||
| 32 | curl_exec($ch); |
||
| 33 | curl_close($ch); |
||
| 34 | fclose($fp); |
||
| 35 | } |
||
| 36 | |||
| 37 | public static function gunzip($in_file,$out_file_name = '') { |
||
| 38 | //echo $in_file.' -> '.$out_file_name."\n"; |
||
| 39 | $buffer_size = 4096; // read 4kb at a time |
||
| 40 | if ($out_file_name == '') $out_file_name = str_replace('.gz', '', $in_file); |
||
| 41 | if ($in_file != '' && file_exists($in_file)) { |
||
| 42 | // PHP version of Ubuntu use gzopen64 instead of gzopen |
||
| 43 | if (function_exists('gzopen')) $file = gzopen($in_file,'rb'); |
||
| 44 | elseif (function_exists('gzopen64')) $file = gzopen64($in_file,'rb'); |
||
| 45 | else { |
||
| 46 | echo 'gzopen not available'; |
||
| 47 | die; |
||
| 48 | } |
||
| 49 | $out_file = fopen($out_file_name, 'wb'); |
||
| 50 | while(!gzeof($file)) { |
||
| 51 | fwrite($out_file, gzread($file, $buffer_size)); |
||
| 52 | } |
||
| 53 | fclose($out_file); |
||
| 54 | gzclose($file); |
||
| 55 | } |
||
| 56 | } |
||
| 57 | |||
| 58 | public static function unzip($in_file) { |
||
| 59 | if ($in_file != '' && file_exists($in_file)) { |
||
| 60 | $path = pathinfo(realpath($in_file), PATHINFO_DIRNAME); |
||
| 61 | $zip = new ZipArchive; |
||
| 62 | $res = $zip->open($in_file); |
||
| 63 | if ($res === TRUE) { |
||
| 64 | $zip->extractTo($path); |
||
| 65 | $zip->close(); |
||
| 66 | } else return false; |
||
| 67 | } else return false; |
||
| 68 | } |
||
| 69 | |||
| 70 | public static function connect_sqlite($database) { |
||
| 71 | try { |
||
| 72 | self::$db_sqlite = new PDO('sqlite:'.$database); |
||
| 73 | self::$db_sqlite->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
||
| 74 | } catch(PDOException $e) { |
||
| 75 | return "error : ".$e->getMessage(); |
||
| 76 | } |
||
| 77 | } |
||
| 78 | |||
| 79 | public static function retrieve_route_sqlite_to_dest($database_file) { |
||
| 80 | global $globalDebug, $globalTransaction; |
||
| 81 | //$query = 'TRUNCATE TABLE routes'; |
||
| 82 | if ($globalDebug) echo " - Delete previous routes from DB -"; |
||
| 83 | $query = "DELETE FROM routes WHERE Source = '' OR Source = :source"; |
||
| 84 | $Connection = new Connection(); |
||
| 85 | try { |
||
| 86 | //$Connection = new Connection(); |
||
| 87 | $sth = $Connection->db->prepare($query); |
||
| 88 | $sth->execute(array(':source' => $database_file)); |
||
| 89 | } catch(PDOException $e) { |
||
| 90 | return "error : ".$e->getMessage(); |
||
| 91 | } |
||
| 92 | |||
| 93 | if ($globalDebug) echo " - Add routes to DB -"; |
||
| 94 | update_db::connect_sqlite($database_file); |
||
| 95 | //$query = 'select Route.RouteID, Route.callsign, operator.Icao AS operator_icao, FromAir.Icao AS FromAirportIcao, ToAir.Icao AS ToAirportIcao from Route inner join operator ON Route.operatorId = operator.operatorId LEFT JOIN Airport AS FromAir ON route.FromAirportId = FromAir.AirportId LEFT JOIN Airport AS ToAir ON ToAir.AirportID = route.ToAirportID'; |
||
| 96 | $query = "select Route.RouteID, Route.callsign, operator.Icao AS operator_icao, FromAir.Icao AS FromAirportIcao, ToAir.Icao AS ToAirportIcao, rstp.allstop AS AllStop from Route inner join operator ON Route.operatorId = operator.operatorId LEFT JOIN Airport AS FromAir ON route.FromAirportId = FromAir.AirportId LEFT JOIN Airport AS ToAir ON ToAir.AirportID = route.ToAirportID LEFT JOIN (select RouteId,GROUP_CONCAT(icao,' ') as allstop from routestop left join Airport as air ON routestop.AirportId = air.AirportID group by RouteID) AS rstp ON Route.RouteID = rstp.RouteID"; |
||
| 97 | try { |
||
| 98 | $sth = update_db::$db_sqlite->prepare($query); |
||
| 99 | $sth->execute(); |
||
| 100 | } catch(PDOException $e) { |
||
| 101 | return "error : ".$e->getMessage(); |
||
| 102 | } |
||
| 103 | //$query_dest = 'INSERT INTO routes (`RouteID`,`CallSign`,`Operator_ICAO`,`FromAirport_ICAO`,`ToAirport_ICAO`,`RouteStop`,`Source`) VALUES (:RouteID, :CallSign, :Operator_ICAO, :FromAirport_ICAO, :ToAirport_ICAO, :routestop, :source)'; |
||
| 104 | $query_dest = 'INSERT INTO routes (CallSign,Operator_ICAO,FromAirport_ICAO,ToAirport_ICAO,RouteStop,Source) VALUES (:CallSign, :Operator_ICAO, :FromAirport_ICAO, :ToAirport_ICAO, :routestop, :source)'; |
||
| 105 | $Connection = new Connection(); |
||
| 106 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 107 | try { |
||
| 108 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 109 | while ($values = $sth->fetch(PDO::FETCH_ASSOC)) { |
||
| 110 | //$query_dest_values = array(':RouteID' => $values['RouteId'],':CallSign' => $values['Callsign'],':Operator_ICAO' => $values['operator_icao'],':FromAirport_ICAO' => $values['FromAirportIcao'],':ToAirport_ICAO' => $values['ToAirportIcao'],':routestop' => $values['AllStop'],':source' => $database_file); |
||
| 111 | $query_dest_values = array(':CallSign' => $values['Callsign'],':Operator_ICAO' => $values['operator_icao'],':FromAirport_ICAO' => $values['FromAirportIcao'],':ToAirport_ICAO' => $values['ToAirportIcao'],':routestop' => $values['AllStop'],':source' => $database_file); |
||
| 112 | $sth_dest->execute($query_dest_values); |
||
| 113 | } |
||
| 114 | if ($globalTransaction) $Connection->db->commit(); |
||
| 115 | } catch(PDOException $e) { |
||
| 116 | if ($globalTransaction) $Connection->db->rollBack(); |
||
|
|
|||
| 117 | return "error : ".$e->getMessage(); |
||
| 118 | } |
||
| 119 | return ''; |
||
| 120 | } |
||
| 121 | public static function retrieve_route_oneworld($database_file) { |
||
| 122 | global $globalDebug, $globalTransaction; |
||
| 123 | //$query = 'TRUNCATE TABLE routes'; |
||
| 124 | if ($globalDebug) echo " - Delete previous routes from DB -"; |
||
| 125 | $query = "DELETE FROM routes WHERE Source = '' OR Source = :source"; |
||
| 126 | $Connection = new Connection(); |
||
| 127 | try { |
||
| 128 | //$Connection = new Connection(); |
||
| 129 | $sth = $Connection->db->prepare($query); |
||
| 130 | $sth->execute(array(':source' => 'oneworld')); |
||
| 131 | } catch(PDOException $e) { |
||
| 132 | return "error : ".$e->getMessage(); |
||
| 133 | } |
||
| 134 | |||
| 135 | if ($globalDebug) echo " - Add routes to DB -"; |
||
| 136 | require_once(dirname(__FILE__).'/../require/class.Spotter.php'); |
||
| 137 | $Spotter = new Spotter(); |
||
| 138 | if ($fh = fopen($database_file,"r")) { |
||
| 139 | $query_dest = 'INSERT INTO routes (CallSign,Operator_ICAO,FromAirport_ICAO,FromAirport_Time,ToAirport_ICAO,ToAirport_Time,RouteStop,Source) VALUES (:CallSign, :Operator_ICAO, :FromAirport_ICAO,:FromAirport_Time, :ToAirport_ICAO, :ToAirport_Time,:routestop, :source)'; |
||
| 140 | $Connection = new Connection(); |
||
| 141 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 142 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 143 | while (!feof($fh)) { |
||
| 144 | $line = fgetcsv($fh,9999,','); |
||
| 145 | if ($line[0] != '') { |
||
| 146 | if (($line[2] == '-' || ($line[2] != '-' && (strtotime($line[2]) > time()))) && ($line[3] == '-' || ($line[3] != '-' && (strtotime($line[3]) < time())))) { |
||
| 147 | try { |
||
| 148 | $query_dest_values = array(':CallSign' => str_replace('*','',$line[7]),':Operator_ICAO' => '',':FromAirport_ICAO' => $Spotter->getAirportICAO($line[0]),':FromAirport_Time' => $line[5],':ToAirport_ICAO' => $Spotter->getAirportICAO($line[1]),':ToAirport_Time' => $line[6],':routestop' => '',':source' => 'oneworld'); |
||
| 149 | $sth_dest->execute($query_dest_values); |
||
| 150 | } catch(PDOException $e) { |
||
| 151 | if ($globalTransaction) $Connection->db->rollBack(); |
||
| 152 | return "error : ".$e->getMessage(); |
||
| 153 | } |
||
| 154 | } |
||
| 155 | } |
||
| 156 | } |
||
| 157 | if ($globalTransaction) $Connection->db->commit(); |
||
| 158 | } |
||
| 159 | return ''; |
||
| 160 | } |
||
| 161 | |||
| 162 | public static function retrieve_route_skyteam($database_file) { |
||
| 163 | global $globalDebug, $globalTransaction; |
||
| 164 | //$query = 'TRUNCATE TABLE routes'; |
||
| 165 | if ($globalDebug) echo " - Delete previous routes from DB -"; |
||
| 166 | $query = "DELETE FROM routes WHERE Source = '' OR Source = :source"; |
||
| 167 | $Connection = new Connection(); |
||
| 168 | try { |
||
| 169 | //$Connection = new Connection(); |
||
| 170 | $sth = $Connection->db->prepare($query); |
||
| 171 | $sth->execute(array(':source' => 'skyteam')); |
||
| 172 | } catch(PDOException $e) { |
||
| 173 | return "error : ".$e->getMessage(); |
||
| 174 | } |
||
| 175 | |||
| 176 | if ($globalDebug) echo " - Add routes to DB -"; |
||
| 177 | |||
| 178 | require_once(dirname(__FILE__).'/../require/class.Spotter.php'); |
||
| 179 | $Spotter = new Spotter(); |
||
| 180 | if ($fh = fopen($database_file,"r")) { |
||
| 181 | $query_dest = 'INSERT INTO routes (CallSign,Operator_ICAO,FromAirport_ICAO,FromAirport_Time,ToAirport_ICAO,ToAirport_Time,RouteStop,Source) VALUES (:CallSign, :Operator_ICAO, :FromAirport_ICAO,:FromAirport_Time, :ToAirport_ICAO, :ToAirport_Time,:routestop, :source)'; |
||
| 182 | $Connection = new Connection(); |
||
| 183 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 184 | try { |
||
| 185 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 186 | while (!feof($fh)) { |
||
| 187 | $line = fgetcsv($fh,9999,','); |
||
| 188 | if ($line[0] != '') { |
||
| 189 | $datebe = explode(' - ',$line[2]); |
||
| 190 | if (strtotime($datebe[0]) > time() && strtotime($datebe[1]) < time()) { |
||
| 191 | $query_dest_values = array(':CallSign' => str_replace('*','',$line[6]),':Operator_ICAO' => '',':FromAirport_ICAO' => $Spotter->getAirportICAO($line[0]),':FromAirport_Time' => $line[4],':ToAirport_ICAO' => $Spotter->getAirportICAO($line[1]),':ToAirport_Time' => $line[5],':routestop' => '',':source' => 'skyteam'); |
||
| 192 | $sth_dest->execute($query_dest_values); |
||
| 193 | } |
||
| 194 | } |
||
| 195 | } |
||
| 196 | if ($globalTransaction) $Connection->db->commit(); |
||
| 197 | } catch(PDOException $e) { |
||
| 198 | if ($globalTransaction) $Connection->db->rollBack(); |
||
| 199 | return "error : ".$e->getMessage(); |
||
| 200 | } |
||
| 201 | } |
||
| 202 | return ''; |
||
| 203 | } |
||
| 204 | public static function retrieve_modes_sqlite_to_dest($database_file) { |
||
| 205 | global $globalTransaction; |
||
| 206 | //$query = 'TRUNCATE TABLE aircraft_modes'; |
||
| 207 | $query = "DELETE FROM aircraft_modes WHERE Source = '' OR Source IS NULL OR Source = :source"; |
||
| 208 | try { |
||
| 209 | $Connection = new Connection(); |
||
| 210 | $sth = $Connection->db->prepare($query); |
||
| 211 | $sth->execute(array(':source' => $database_file)); |
||
| 212 | } catch(PDOException $e) { |
||
| 213 | return "error : ".$e->getMessage(); |
||
| 214 | } |
||
| 215 | $query = "DELETE FROM aircraft_owner WHERE Source = '' OR Source IS NULL OR Source = :source"; |
||
| 216 | try { |
||
| 217 | $Connection = new Connection(); |
||
| 218 | $sth = $Connection->db->prepare($query); |
||
| 219 | $sth->execute(array(':source' => $database_file)); |
||
| 220 | } catch(PDOException $e) { |
||
| 221 | return "error : ".$e->getMessage(); |
||
| 222 | } |
||
| 223 | |||
| 224 | update_db::connect_sqlite($database_file); |
||
| 225 | $query = 'select * from Aircraft'; |
||
| 226 | try { |
||
| 227 | $sth = update_db::$db_sqlite->prepare($query); |
||
| 228 | $sth->execute(); |
||
| 229 | } catch(PDOException $e) { |
||
| 230 | return "error : ".$e->getMessage(); |
||
| 231 | } |
||
| 232 | //$query_dest = 'INSERT INTO aircraft_modes (`AircraftID`,`FirstCreated`,`LastModified`, `ModeS`,`ModeSCountry`,`Registration`,`ICAOTypeCode`,`SerialNo`, `OperatorFlagCode`, `Manufacturer`, `Type`, `FirstRegDate`, `CurrentRegDate`, `Country`, `PreviousID`, `DeRegDate`, `Status`, `PopularName`,`GenericName`,`AircraftClass`, `Engines`, `OwnershipStatus`,`RegisteredOwners`,`MTOW`, `TotalHours`, `YearBuilt`, `CofACategory`, `CofAExpiry`, `UserNotes`, `Interested`, `UserTag`, `InfoUrl`, `PictureUrl1`, `PictureUrl2`, `PictureUrl3`, `UserBool1`, `UserBool2`, `UserBool3`, `UserBool4`, `UserBool5`, `UserString1`, `UserString2`, `UserString3`, `UserString4`, `UserString5`, `UserInt1`, `UserInt2`, `UserInt3`, `UserInt4`, `UserInt5`) VALUES (:AircraftID,:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:SerialNo, :OperatorFlagCode, :Manufacturer, :Type, :FirstRegDate, :CurrentRegDate, :Country, :PreviousID, :DeRegDate, :Status, :PopularName,:GenericName,:AircraftClass, :Engines, :OwnershipStatus,:RegisteredOwners,:MTOW, :TotalHours,:YearBuilt, :CofACategory, :CofAExpiry, :UserNotes, :Interested, :UserTag, :InfoUrl, :PictureUrl1, :PictureUrl2, :PictureUrl3, :UserBool1, :UserBool2, :UserBool3, :UserBool4, :UserBool5, :UserString1, :UserString2, :UserString3, :UserString4, :UserString5, :UserInt1, :UserInt2, :UserInt3, :UserInt4, :UserInt5)'; |
||
| 233 | $query_dest = 'INSERT INTO aircraft_modes (LastModified, ModeS,ModeSCountry,Registration,ICAOTypeCode,type_flight,Source) VALUES (:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:type,:source)'; |
||
| 234 | |||
| 235 | $query_dest_owner = 'INSERT INTO aircraft_owner (registration,owner,Source) VALUES (:registration,:owner,:source)'; |
||
| 236 | |||
| 237 | $Connection = new Connection(); |
||
| 238 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 239 | $sth_dest_owner = $Connection->db->prepare($query_dest_owner); |
||
| 240 | try { |
||
| 241 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 242 | while ($values = $sth->fetch(PDO::FETCH_ASSOC)) { |
||
| 243 | //$query_dest_values = array(':AircraftID' => $values['AircraftID'],':FirstCreated' => $values['FirstCreated'],':LastModified' => $values['LastModified'],':ModeS' => $values['ModeS'],':ModeSCountry' => $values['ModeSCountry'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':SerialNo' => $values['SerialNo'], ':OperatorFlagCode' => $values['OperatorFlagCode'], ':Manufacturer' => $values['Manufacturer'], ':Type' => $values['Type'], ':FirstRegDate' => $values['FirstRegDate'], ':CurrentRegDate' => $values['CurrentRegDate'], ':Country' => $values['Country'], ':PreviousID' => $values['PreviousID'], ':DeRegDate' => $values['DeRegDate'], ':Status' => $values['Status'], ':PopularName' => $values['PopularName'],':GenericName' => $values['GenericName'],':AircraftClass' => $values['AircraftClass'], ':Engines' => $values['Engines'], ':OwnershipStatus' => $values['OwnershipStatus'],':RegisteredOwners' => $values['RegisteredOwners'],':MTOW' => $values['MTOW'], ':TotalHours' => $values['TotalHours'],':YearBuilt' => $values['YearBuilt'], ':CofACategory' => $values['CofACategory'], ':CofAExpiry' => $values['CofAExpiry'], ':UserNotes' => $values['UserNotes'], ':Interested' => $values['Interested'], ':UserTag' => $values['UserTag'], ':InfoUrl' => $values['InfoURL'], ':PictureUrl1' => $values['PictureURL1'], ':PictureUrl2' => $values['PictureURL2'], ':PictureUrl3' => $values['PictureURL3'], ':UserBool1' => $values['UserBool1'], ':UserBool2' => $values['UserBool2'], ':UserBool3' => $values['UserBool3'], ':UserBool4' => $values['UserBool4'], ':UserBool5' => $values['UserBool5'], ':UserString1' => $values['UserString1'], ':UserString2' => $values['UserString2'], ':UserString3' => $values['UserString3'], ':UserString4' => $values['UserString4'], ':UserString5' => $values['UserString5'], ':UserInt1' => $values['UserInt1'], ':UserInt2' => $values['UserInt2'], ':UserInt3' => $values['UserInt3'], ':UserInt4' => $values['UserInt4'], ':UserInt5' => $values['UserInt5']); |
||
| 244 | if ($values['UserString4'] == 'M') $type = 'military'; |
||
| 245 | else $type = null; |
||
| 246 | $query_dest_values = array(':LastModified' => $values['LastModified'],':ModeS' => $values['ModeS'],':ModeSCountry' => $values['ModeSCountry'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':source' => $database_file,':type' => $type); |
||
| 247 | $sth_dest->execute($query_dest_values); |
||
| 248 | if ($values['RegisteredOwners'] != '' && $values['RegisteredOwners'] != NULL && $values['RegisteredOwners'] != 'Private') { |
||
| 249 | $query_dest_owner_values = array(':registration' => $values['Registration'],':source' => $database_file,':owner' => $values['RegisteredOwners']); |
||
| 250 | $sth_dest_owner->execute($query_dest_owner_values); |
||
| 251 | } |
||
| 252 | } |
||
| 253 | if ($globalTransaction) $Connection->db->commit(); |
||
| 254 | } catch(PDOException $e) { |
||
| 255 | return "error : ".$e->getMessage(); |
||
| 256 | } |
||
| 257 | |||
| 258 | // Remove data already in DB from ACARS |
||
| 259 | $query = "DELETE FROM aircraft_modes WHERE Source = :source AND ModeS IN (SELECT * FROM (SELECT ModeS FROM aircraft_modes WHERE Source = 'ACARS') _alias)"; |
||
| 260 | try { |
||
| 261 | $Connection = new Connection(); |
||
| 262 | $sth = $Connection->db->prepare($query); |
||
| 263 | $sth->execute(array(':source' => $database_file)); |
||
| 264 | } catch(PDOException $e) { |
||
| 265 | return "error : ".$e->getMessage(); |
||
| 266 | } |
||
| 267 | return ''; |
||
| 268 | } |
||
| 269 | |||
| 270 | public static function retrieve_modes_flarmnet($database_file) { |
||
| 271 | global $globalTransaction; |
||
| 272 | $Common = new Common(); |
||
| 273 | //$query = 'TRUNCATE TABLE aircraft_modes'; |
||
| 274 | $query = "DELETE FROM aircraft_modes WHERE Source = '' OR Source IS NULL OR Source = :source"; |
||
| 275 | try { |
||
| 276 | $Connection = new Connection(); |
||
| 277 | $sth = $Connection->db->prepare($query); |
||
| 278 | $sth->execute(array(':source' => $database_file)); |
||
| 279 | } catch(PDOException $e) { |
||
| 280 | return "error : ".$e->getMessage(); |
||
| 281 | } |
||
| 282 | |||
| 283 | if ($fh = fopen($database_file,"r")) { |
||
| 284 | //$query_dest = 'INSERT INTO aircraft_modes (`AircraftID`,`FirstCreated`,`LastModified`, `ModeS`,`ModeSCountry`,`Registration`,`ICAOTypeCode`,`SerialNo`, `OperatorFlagCode`, `Manufacturer`, `Type`, `FirstRegDate`, `CurrentRegDate`, `Country`, `PreviousID`, `DeRegDate`, `Status`, `PopularName`,`GenericName`,`AircraftClass`, `Engines`, `OwnershipStatus`,`RegisteredOwners`,`MTOW`, `TotalHours`, `YearBuilt`, `CofACategory`, `CofAExpiry`, `UserNotes`, `Interested`, `UserTag`, `InfoUrl`, `PictureUrl1`, `PictureUrl2`, `PictureUrl3`, `UserBool1`, `UserBool2`, `UserBool3`, `UserBool4`, `UserBool5`, `UserString1`, `UserString2`, `UserString3`, `UserString4`, `UserString5`, `UserInt1`, `UserInt2`, `UserInt3`, `UserInt4`, `UserInt5`) VALUES (:AircraftID,:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:SerialNo, :OperatorFlagCode, :Manufacturer, :Type, :FirstRegDate, :CurrentRegDate, :Country, :PreviousID, :DeRegDate, :Status, :PopularName,:GenericName,:AircraftClass, :Engines, :OwnershipStatus,:RegisteredOwners,:MTOW, :TotalHours,:YearBuilt, :CofACategory, :CofAExpiry, :UserNotes, :Interested, :UserTag, :InfoUrl, :PictureUrl1, :PictureUrl2, :PictureUrl3, :UserBool1, :UserBool2, :UserBool3, :UserBool4, :UserBool5, :UserString1, :UserString2, :UserString3, :UserString4, :UserString5, :UserInt1, :UserInt2, :UserInt3, :UserInt4, :UserInt5)'; |
||
| 285 | $query_dest = 'INSERT INTO aircraft_modes (ModeS,Registration,ICAOTypeCode,Source,source_type) VALUES (:ModeS,:Registration,:ICAOTypeCode,:source,:source_type)'; |
||
| 286 | |||
| 287 | $Connection = new Connection(); |
||
| 288 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 289 | try { |
||
| 290 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 291 | while (!feof($fh)) { |
||
| 292 | $values = array(); |
||
| 293 | $line = $Common->hex2str(fgets($fh,9999)); |
||
| 294 | //FFFFFF RIDEAU VALLEY SOARINGASW-20 C-FBKN MZ 123.400 |
||
| 295 | $values['ModeS'] = substr($line,0,6); |
||
| 296 | $values['Registration'] = trim(substr($line,69,6)); |
||
| 297 | $aircraft_name = trim(substr($line,48,6)); |
||
| 298 | // Check if we can find ICAO, else set it to GLID |
||
| 299 | $aircraft_name_split = explode(' ',$aircraft_name); |
||
| 300 | $search_more = ''; |
||
| 301 | if (count($aircraft_name) > 1 && strlen($aircraft_name_split[1]) > 3) $search_more .= " AND LIKE '%".$aircraft_name_split[0]."%'"; |
||
| 302 | $query_search = "SELECT * FROM aircraft WHERE type LIKE '%".$aircraft_name."%'".$search_more; |
||
| 303 | $sth_search = $Connection->db->prepare($query_search); |
||
| 304 | try { |
||
| 305 | $sth_search->execute(); |
||
| 306 | $result = $sth_search->fetch(PDO::FETCH_ASSOC); |
||
| 307 | //if (count($result) > 0) { |
||
| 308 | if (isset($result['icao']) && $result['icao'] != '') { |
||
| 309 | $values['ICAOTypeCode'] = $result['icao']; |
||
| 310 | } |
||
| 311 | } catch(PDOException $e) { |
||
| 312 | return "error : ".$e->getMessage(); |
||
| 313 | } |
||
| 314 | if (!isset($values['ICAOTypeCode'])) $values['ICAOTypeCode'] = 'GLID'; |
||
| 315 | // Add data to db |
||
| 316 | if ($values['Registration'] != '' && $values['Registration'] != '0000') { |
||
| 317 | //$query_dest_values = array(':AircraftID' => $values['AircraftID'],':FirstCreated' => $values['FirstCreated'],':LastModified' => $values['LastModified'],':ModeS' => $values['ModeS'],':ModeSCountry' => $values['ModeSCountry'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':SerialNo' => $values['SerialNo'], ':OperatorFlagCode' => $values['OperatorFlagCode'], ':Manufacturer' => $values['Manufacturer'], ':Type' => $values['Type'], ':FirstRegDate' => $values['FirstRegDate'], ':CurrentRegDate' => $values['CurrentRegDate'], ':Country' => $values['Country'], ':PreviousID' => $values['PreviousID'], ':DeRegDate' => $values['DeRegDate'], ':Status' => $values['Status'], ':PopularName' => $values['PopularName'],':GenericName' => $values['GenericName'],':AircraftClass' => $values['AircraftClass'], ':Engines' => $values['Engines'], ':OwnershipStatus' => $values['OwnershipStatus'],':RegisteredOwners' => $values['RegisteredOwners'],':MTOW' => $values['MTOW'], ':TotalHours' => $values['TotalHours'],':YearBuilt' => $values['YearBuilt'], ':CofACategory' => $values['CofACategory'], ':CofAExpiry' => $values['CofAExpiry'], ':UserNotes' => $values['UserNotes'], ':Interested' => $values['Interested'], ':UserTag' => $values['UserTag'], ':InfoUrl' => $values['InfoURL'], ':PictureUrl1' => $values['PictureURL1'], ':PictureUrl2' => $values['PictureURL2'], ':PictureUrl3' => $values['PictureURL3'], ':UserBool1' => $values['UserBool1'], ':UserBool2' => $values['UserBool2'], ':UserBool3' => $values['UserBool3'], ':UserBool4' => $values['UserBool4'], ':UserBool5' => $values['UserBool5'], ':UserString1' => $values['UserString1'], ':UserString2' => $values['UserString2'], ':UserString3' => $values['UserString3'], ':UserString4' => $values['UserString4'], ':UserString5' => $values['UserString5'], ':UserInt1' => $values['UserInt1'], ':UserInt2' => $values['UserInt2'], ':UserInt3' => $values['UserInt3'], ':UserInt4' => $values['UserInt4'], ':UserInt5' => $values['UserInt5']); |
||
| 318 | $query_dest_values = array(':ModeS' => $values['ModeS'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':source' => $database_file,':source_type' => 'flarm'); |
||
| 319 | //print_r($query_dest_values); |
||
| 320 | $sth_dest->execute($query_dest_values); |
||
| 321 | } |
||
| 322 | } |
||
| 323 | if ($globalTransaction) $Connection->db->commit(); |
||
| 324 | } catch(PDOException $e) { |
||
| 325 | return "error : ".$e->getMessage(); |
||
| 326 | } |
||
| 327 | } |
||
| 328 | |||
| 329 | $query = "DELETE FROM aircraft_modes WHERE Source = :source AND ModeS IN (SELECT * FROM (SELECT ModeS FROM aircraft_modes WHERE Source = 'ACARS') _alias)"; |
||
| 330 | try { |
||
| 331 | $Connection = new Connection(); |
||
| 332 | $sth = $Connection->db->prepare($query); |
||
| 333 | $sth->execute(array(':source' => $database_file)); |
||
| 334 | } catch(PDOException $e) { |
||
| 335 | return "error : ".$e->getMessage(); |
||
| 336 | } |
||
| 337 | return ''; |
||
| 338 | } |
||
| 339 | |||
| 340 | public static function retrieve_modes_ogn($database_file) { |
||
| 341 | global $globalTransaction; |
||
| 342 | //$query = 'TRUNCATE TABLE aircraft_modes'; |
||
| 343 | $query = "DELETE FROM aircraft_modes WHERE Source = '' OR Source IS NULL OR Source = :source"; |
||
| 344 | try { |
||
| 345 | $Connection = new Connection(); |
||
| 346 | $sth = $Connection->db->prepare($query); |
||
| 347 | $sth->execute(array(':source' => $database_file)); |
||
| 348 | } catch(PDOException $e) { |
||
| 349 | return "error : ".$e->getMessage(); |
||
| 350 | } |
||
| 351 | |||
| 352 | if ($fh = fopen($database_file,"r")) { |
||
| 353 | //$query_dest = 'INSERT INTO aircraft_modes (`AircraftID`,`FirstCreated`,`LastModified`, `ModeS`,`ModeSCountry`,`Registration`,`ICAOTypeCode`,`SerialNo`, `OperatorFlagCode`, `Manufacturer`, `Type`, `FirstRegDate`, `CurrentRegDate`, `Country`, `PreviousID`, `DeRegDate`, `Status`, `PopularName`,`GenericName`,`AircraftClass`, `Engines`, `OwnershipStatus`,`RegisteredOwners`,`MTOW`, `TotalHours`, `YearBuilt`, `CofACategory`, `CofAExpiry`, `UserNotes`, `Interested`, `UserTag`, `InfoUrl`, `PictureUrl1`, `PictureUrl2`, `PictureUrl3`, `UserBool1`, `UserBool2`, `UserBool3`, `UserBool4`, `UserBool5`, `UserString1`, `UserString2`, `UserString3`, `UserString4`, `UserString5`, `UserInt1`, `UserInt2`, `UserInt3`, `UserInt4`, `UserInt5`) VALUES (:AircraftID,:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:SerialNo, :OperatorFlagCode, :Manufacturer, :Type, :FirstRegDate, :CurrentRegDate, :Country, :PreviousID, :DeRegDate, :Status, :PopularName,:GenericName,:AircraftClass, :Engines, :OwnershipStatus,:RegisteredOwners,:MTOW, :TotalHours,:YearBuilt, :CofACategory, :CofAExpiry, :UserNotes, :Interested, :UserTag, :InfoUrl, :PictureUrl1, :PictureUrl2, :PictureUrl3, :UserBool1, :UserBool2, :UserBool3, :UserBool4, :UserBool5, :UserString1, :UserString2, :UserString3, :UserString4, :UserString5, :UserInt1, :UserInt2, :UserInt3, :UserInt4, :UserInt5)'; |
||
| 354 | $query_dest = 'INSERT INTO aircraft_modes (LastModified,ModeS,Registration,ICAOTypeCode,Source,source_type) VALUES (:lastmodified,:ModeS,:Registration,:ICAOTypeCode,:source,:source_type)'; |
||
| 355 | |||
| 356 | $Connection = new Connection(); |
||
| 357 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 358 | try { |
||
| 359 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 360 | $tmp = fgetcsv($fh,9999,',',"'"); |
||
| 361 | while (!feof($fh)) { |
||
| 362 | $line = fgetcsv($fh,9999,',',"'"); |
||
| 363 | |||
| 364 | //FFFFFF RIDEAU VALLEY SOARINGASW-20 C-FBKN MZ 123.400 |
||
| 365 | //print_r($line); |
||
| 366 | $values['ModeS'] = $line[1]; |
||
| 367 | $values['Registration'] = $line[3]; |
||
| 368 | $values['ICAOTypeCode'] = ''; |
||
| 369 | $aircraft_name = $line[2]; |
||
| 370 | // Check if we can find ICAO, else set it to GLID |
||
| 371 | $aircraft_name_split = explode(' ',$aircraft_name); |
||
| 372 | $search_more = ''; |
||
| 373 | if (count($aircraft_name) > 1 && strlen($aircraft_name_split[1]) > 3) $search_more .= " AND LIKE '%".$aircraft_name_split[0]."%'"; |
||
| 374 | $query_search = "SELECT * FROM aircraft WHERE type LIKE '%".$aircraft_name."%'".$search_more; |
||
| 375 | $sth_search = $Connection->db->prepare($query_search); |
||
| 376 | try { |
||
| 377 | $sth_search->execute(); |
||
| 378 | $result = $sth_search->fetch(PDO::FETCH_ASSOC); |
||
| 379 | if (isset($result['icao']) && $result['icao'] != '') $values['ICAOTypeCode'] = $result['icao']; |
||
| 380 | } catch(PDOException $e) { |
||
| 381 | return "error : ".$e->getMessage(); |
||
| 382 | } |
||
| 383 | //if (!isset($values['ICAOTypeCode'])) $values['ICAOTypeCode'] = 'GLID'; |
||
| 384 | // Add data to db |
||
| 385 | if ($values['Registration'] != '' && $values['Registration'] != '0000' && $values['ICAOTypeCode'] != '') { |
||
| 386 | //$query_dest_values = array(':AircraftID' => $values['AircraftID'],':FirstCreated' => $values['FirstCreated'],':LastModified' => $values['LastModified'],':ModeS' => $values['ModeS'],':ModeSCountry' => $values['ModeSCountry'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':SerialNo' => $values['SerialNo'], ':OperatorFlagCode' => $values['OperatorFlagCode'], ':Manufacturer' => $values['Manufacturer'], ':Type' => $values['Type'], ':FirstRegDate' => $values['FirstRegDate'], ':CurrentRegDate' => $values['CurrentRegDate'], ':Country' => $values['Country'], ':PreviousID' => $values['PreviousID'], ':DeRegDate' => $values['DeRegDate'], ':Status' => $values['Status'], ':PopularName' => $values['PopularName'],':GenericName' => $values['GenericName'],':AircraftClass' => $values['AircraftClass'], ':Engines' => $values['Engines'], ':OwnershipStatus' => $values['OwnershipStatus'],':RegisteredOwners' => $values['RegisteredOwners'],':MTOW' => $values['MTOW'], ':TotalHours' => $values['TotalHours'],':YearBuilt' => $values['YearBuilt'], ':CofACategory' => $values['CofACategory'], ':CofAExpiry' => $values['CofAExpiry'], ':UserNotes' => $values['UserNotes'], ':Interested' => $values['Interested'], ':UserTag' => $values['UserTag'], ':InfoUrl' => $values['InfoURL'], ':PictureUrl1' => $values['PictureURL1'], ':PictureUrl2' => $values['PictureURL2'], ':PictureUrl3' => $values['PictureURL3'], ':UserBool1' => $values['UserBool1'], ':UserBool2' => $values['UserBool2'], ':UserBool3' => $values['UserBool3'], ':UserBool4' => $values['UserBool4'], ':UserBool5' => $values['UserBool5'], ':UserString1' => $values['UserString1'], ':UserString2' => $values['UserString2'], ':UserString3' => $values['UserString3'], ':UserString4' => $values['UserString4'], ':UserString5' => $values['UserString5'], ':UserInt1' => $values['UserInt1'], ':UserInt2' => $values['UserInt2'], ':UserInt3' => $values['UserInt3'], ':UserInt4' => $values['UserInt4'], ':UserInt5' => $values['UserInt5']); |
||
| 387 | $query_dest_values = array(':lastmodified' => date('Y-m-d H:m:s'),':ModeS' => $values['ModeS'],':Registration' => $values['Registration'],':ICAOTypeCode' => $values['ICAOTypeCode'],':source' => $database_file,':source_type' => 'flarm'); |
||
| 388 | //print_r($query_dest_values); |
||
| 389 | $sth_dest->execute($query_dest_values); |
||
| 390 | } |
||
| 391 | } |
||
| 392 | if ($globalTransaction) $Connection->db->commit(); |
||
| 393 | } catch(PDOException $e) { |
||
| 394 | return "error : ".$e->getMessage(); |
||
| 395 | } |
||
| 396 | } |
||
| 397 | |||
| 398 | $query = "DELETE FROM aircraft_modes WHERE Source = :source AND ModeS IN (SELECT * FROM (SELECT ModeS FROM aircraft_modes WHERE Source = 'ACARS') _alias)"; |
||
| 399 | try { |
||
| 400 | $Connection = new Connection(); |
||
| 401 | $sth = $Connection->db->prepare($query); |
||
| 402 | $sth->execute(array(':source' => $database_file)); |
||
| 403 | } catch(PDOException $e) { |
||
| 404 | return "error : ".$e->getMessage(); |
||
| 405 | } |
||
| 406 | return ''; |
||
| 407 | } |
||
| 408 | |||
| 409 | public static function retrieve_owner($database_file,$country = 'F') { |
||
| 410 | global $globalTransaction, $globalMasterSource; |
||
| 411 | //$query = 'TRUNCATE TABLE aircraft_modes'; |
||
| 412 | $query = "DELETE FROM aircraft_owner WHERE Source = '' OR Source IS NULL OR Source = :source; DELETE FROM aircraft_modes WHERE Source = :source;"; |
||
| 413 | try { |
||
| 414 | $Connection = new Connection(); |
||
| 415 | $sth = $Connection->db->prepare($query); |
||
| 416 | $sth->execute(array(':source' => $database_file)); |
||
| 417 | } catch(PDOException $e) { |
||
| 418 | return "error : ".$e->getMessage(); |
||
| 419 | } |
||
| 420 | require_once(dirname(__FILE__).'/../require/class.Spotter.php'); |
||
| 421 | $Spotter = new Spotter(); |
||
| 422 | if ($fh = fopen($database_file,"r")) { |
||
| 423 | //$query_dest = 'INSERT INTO aircraft_modes (`AircraftID`,`FirstCreated`,`LastModified`, `ModeS`,`ModeSCountry`,`Registration`,`ICAOTypeCode`,`SerialNo`, `OperatorFlagCode`, `Manufacturer`, `Type`, `FirstRegDate`, `CurrentRegDate`, `Country`, `PreviousID`, `DeRegDate`, `Status`, `PopularName`,`GenericName`,`AircraftClass`, `Engines`, `OwnershipStatus`,`RegisteredOwners`,`MTOW`, `TotalHours`, `YearBuilt`, `CofACategory`, `CofAExpiry`, `UserNotes`, `Interested`, `UserTag`, `InfoUrl`, `PictureUrl1`, `PictureUrl2`, `PictureUrl3`, `UserBool1`, `UserBool2`, `UserBool3`, `UserBool4`, `UserBool5`, `UserString1`, `UserString2`, `UserString3`, `UserString4`, `UserString5`, `UserInt1`, `UserInt2`, `UserInt3`, `UserInt4`, `UserInt5`) VALUES (:AircraftID,:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:SerialNo, :OperatorFlagCode, :Manufacturer, :Type, :FirstRegDate, :CurrentRegDate, :Country, :PreviousID, :DeRegDate, :Status, :PopularName,:GenericName,:AircraftClass, :Engines, :OwnershipStatus,:RegisteredOwners,:MTOW, :TotalHours,:YearBuilt, :CofACategory, :CofAExpiry, :UserNotes, :Interested, :UserTag, :InfoUrl, :PictureUrl1, :PictureUrl2, :PictureUrl3, :UserBool1, :UserBool2, :UserBool3, :UserBool4, :UserBool5, :UserString1, :UserString2, :UserString3, :UserString4, :UserString5, :UserInt1, :UserInt2, :UserInt3, :UserInt4, :UserInt5)'; |
||
| 424 | $query_dest = 'INSERT INTO aircraft_owner (registration,base,owner,date_first_reg,Source) VALUES (:registration,:base,:owner,:date_first_reg,:source)'; |
||
| 425 | $query_modes = 'INSERT INTO aircraft_modes (ModeS,ModeSCountry,Registration,ICAOTypeCode,Source) VALUES (:modes,:modescountry,:registration,:icaotypecode,:source)'; |
||
| 426 | |||
| 427 | $Connection = new Connection(); |
||
| 428 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 429 | $sth_modes = $Connection->db->prepare($query_modes); |
||
| 430 | try { |
||
| 431 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 432 | $tmp = fgetcsv($fh,9999,',','"'); |
||
| 433 | while (!feof($fh)) { |
||
| 434 | $line = fgetcsv($fh,9999,',','"'); |
||
| 435 | $values = array(); |
||
| 436 | //print_r($line); |
||
| 437 | if ($country == 'F') { |
||
| 438 | $values['registration'] = $line[0]; |
||
| 439 | $values['base'] = $line[4]; |
||
| 440 | $values['owner'] = $line[5]; |
||
| 441 | if ($line[6] == '') $values['date_first_reg'] = null; |
||
| 442 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[6])); |
||
| 443 | $values['cancel'] = $line[7]; |
||
| 444 | } elseif ($country == 'EI') { |
||
| 445 | // TODO : add modeS & reg to aircraft_modes |
||
| 446 | $values['registration'] = $line[0]; |
||
| 447 | $values['base'] = $line[3]; |
||
| 448 | $values['owner'] = $line[2]; |
||
| 449 | if ($line[1] == '') $values['date_first_reg'] = null; |
||
| 450 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[1])); |
||
| 451 | $values['cancel'] = ''; |
||
| 452 | $values['modes'] = $line[7]; |
||
| 453 | $values['icao'] = $line[8]; |
||
| 454 | |||
| 455 | } elseif ($country == 'HB') { |
||
| 456 | // TODO : add modeS & reg to aircraft_modes |
||
| 457 | $values['registration'] = $line[0]; |
||
| 458 | $values['base'] = null; |
||
| 459 | $values['owner'] = $line[5]; |
||
| 460 | $values['date_first_reg'] = null; |
||
| 461 | $values['cancel'] = ''; |
||
| 462 | $values['modes'] = $line[4]; |
||
| 463 | $values['icao'] = $line[7]; |
||
| 464 | } elseif ($country == 'OK') { |
||
| 465 | // TODO : add modeS & reg to aircraft_modes |
||
| 466 | $values['registration'] = $line[3]; |
||
| 467 | $values['base'] = null; |
||
| 468 | $values['owner'] = $line[5]; |
||
| 469 | if ($line[18] == '') $values['date_first_reg'] = null; |
||
| 470 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[18])); |
||
| 471 | $values['cancel'] = ''; |
||
| 472 | } elseif ($country == 'VH') { |
||
| 473 | // TODO : add modeS & reg to aircraft_modes |
||
| 474 | $values['registration'] = $line[0]; |
||
| 475 | $values['base'] = null; |
||
| 476 | $values['owner'] = $line[12]; |
||
| 477 | if ($line[28] == '') $values['date_first_reg'] = null; |
||
| 478 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[28])); |
||
| 479 | |||
| 480 | $values['cancel'] = $line[39]; |
||
| 481 | } elseif ($country == 'OE' || $country == '9A' || $country == 'VP' || $country == 'LX' || $country == 'P2' || $country == 'HC') { |
||
| 482 | $values['registration'] = $line[0]; |
||
| 483 | $values['base'] = null; |
||
| 484 | $values['owner'] = $line[4]; |
||
| 485 | $values['date_first_reg'] = null; |
||
| 486 | $values['cancel'] = ''; |
||
| 487 | } elseif ($country == 'CC') { |
||
| 488 | $values['registration'] = $line[0]; |
||
| 489 | $values['base'] = null; |
||
| 490 | $values['owner'] = $line[6]; |
||
| 491 | $values['date_first_reg'] = null; |
||
| 492 | $values['cancel'] = ''; |
||
| 493 | } elseif ($country == 'HJ') { |
||
| 494 | $values['registration'] = $line[0]; |
||
| 495 | $values['base'] = null; |
||
| 496 | $values['owner'] = $line[8]; |
||
| 497 | if ($line[7] == '') $values['date_first_reg'] = null; |
||
| 498 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[7])); |
||
| 499 | $values['cancel'] = ''; |
||
| 500 | } elseif ($country == 'PP') { |
||
| 501 | $values['registration'] = $line[0]; |
||
| 502 | $values['base'] = null; |
||
| 503 | $values['owner'] = $line[4]; |
||
| 504 | if ($line[6] == '') $values['date_first_reg'] = null; |
||
| 505 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[6])); |
||
| 506 | $values['cancel'] = $line[7]; |
||
| 507 | } elseif ($country == 'E7') { |
||
| 508 | $values['registration'] = $line[0]; |
||
| 509 | $values['base'] = null; |
||
| 510 | $values['owner'] = $line[4]; |
||
| 511 | if ($line[5] == '') $values['date_first_reg'] = null; |
||
| 512 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[5])); |
||
| 513 | $values['cancel'] = ''; |
||
| 514 | } elseif ($country == '8Q') { |
||
| 515 | $values['registration'] = $line[0]; |
||
| 516 | $values['base'] = null; |
||
| 517 | $values['owner'] = $line[3]; |
||
| 518 | if ($line[7] == '') $values['date_first_reg'] = null; |
||
| 519 | else $values['date_first_reg'] = date("Y-m-d",strtotime($line[7])); |
||
| 520 | $values['cancel'] = ''; |
||
| 521 | } elseif ($country == 'ZK') { |
||
| 522 | $values['registration'] = $line[0]; |
||
| 523 | $values['base'] = null; |
||
| 524 | $values['owner'] = $line[3]; |
||
| 525 | $values['date_first_reg'] = null; |
||
| 526 | $values['cancel'] = ''; |
||
| 527 | $values['modes'] = $line[5]; |
||
| 528 | $values['icao'] = $line[9]; |
||
| 529 | } elseif ($country == 'M') { |
||
| 530 | $values['registration'] = $line[0]; |
||
| 531 | $values['base'] = null; |
||
| 532 | $values['owner'] = $line[6]; |
||
| 533 | $values['date_first_reg'] = date("Y-m-d",strtotime($line[5])); |
||
| 534 | $values['cancel'] = date("Y-m-d",strtotime($line[8])); |
||
| 535 | $values['modes'] = $line[4]; |
||
| 536 | $values['icao'] = $line[10]; |
||
| 537 | } elseif ($country == 'OY') { |
||
| 538 | $values['registration'] = $line[0]; |
||
| 539 | $values['date_first_reg'] = date("Y-m-d",strtotime($line[4])); |
||
| 540 | $values['modes'] = $line[5]; |
||
| 541 | $values['icao'] = $line[6]; |
||
| 542 | } elseif ($country == 'PH') { |
||
| 543 | $values['registration'] = $line[0]; |
||
| 544 | $values['date_first_reg'] = date("Y-m-d",strtotime($line[3])); |
||
| 545 | $values['modes'] = $line[4]; |
||
| 546 | $values['icao'] = $line[5]; |
||
| 547 | } elseif ($country == 'OM' || $country == 'TF') { |
||
| 548 | $values['registration'] = $line[0]; |
||
| 549 | $values['base'] = null; |
||
| 550 | $values['owner'] = $line[3]; |
||
| 551 | $values['date_first_reg'] = null; |
||
| 552 | $values['cancel'] = ''; |
||
| 553 | } |
||
| 554 | if (isset($values['cancel']) && $values['cancel'] == '' && $values['registration'] != null && isset($values['owner'])) { |
||
| 555 | $query_dest_values = array(':registration' => $values['registration'],':base' => $values['base'],':date_first_reg' => $values['date_first_reg'],':owner' => $values['owner'],':source' => $database_file); |
||
| 556 | $sth_dest->execute($query_dest_values); |
||
| 557 | } |
||
| 558 | if ($globalMasterSource && $values['registration'] != null && isset($values['modes']) && $values['modes'] != '') { |
||
| 559 | $modescountry = $Spotter->countryFromAircraftRegistration($values['registration']); |
||
| 560 | $query_modes_values = array(':registration' => $values['registration'],':modes' => $values['modes'],':modescountry' => $modescountry,':icaotypecode' => $values['icao'],':source' => $database_file); |
||
| 561 | $sth_modes->execute($query_modes_values); |
||
| 562 | } |
||
| 563 | } |
||
| 564 | if ($globalTransaction) $Connection->db->commit(); |
||
| 565 | } catch(PDOException $e) { |
||
| 566 | return "error : ".$e->getMessage(); |
||
| 567 | } |
||
| 568 | } |
||
| 569 | return ''; |
||
| 570 | } |
||
| 571 | |||
| 572 | /* |
||
| 573 | * This function is used to create a list of airports. Sources : Wikipedia, ourairports.com ans partow.net |
||
| 574 | */ |
||
| 575 | public static function update_airports() { |
||
| 576 | global $tmp_dir, $globalTransaction, $globalDebug; |
||
| 577 | |||
| 578 | require_once(dirname(__FILE__).'/libs/sparqllib.php'); |
||
| 579 | $db = sparql_connect('http://dbpedia.org/sparql'); |
||
| 580 | $query = ' |
||
| 581 | PREFIX dbo: <http://dbpedia.org/ontology/> |
||
| 582 | PREFIX dbp: <http://dbpedia.org/property/> |
||
| 583 | PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> |
||
| 584 | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> |
||
| 585 | PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> |
||
| 586 | SELECT ?name ?icao ?iata ?faa ?lid ?latitude ?longitude ?airport ?homepage ?type ?country ?country_bis ?altitude ?image |
||
| 587 | FROM <http://dbpedia.org> |
||
| 588 | WHERE { |
||
| 589 | ?airport rdf:type <http://dbpedia.org/ontology/Airport> . |
||
| 590 | |||
| 591 | OPTIONAL { |
||
| 592 | ?airport dbo:icaoLocationIdentifier ?icao . |
||
| 593 | FILTER regex(?icao, "^[A-Z0-9]{4}$") |
||
| 594 | } |
||
| 595 | |||
| 596 | OPTIONAL { |
||
| 597 | ?airport dbo:iataLocationIdentifier ?iata . |
||
| 598 | FILTER regex(?iata, "^[A-Z0-9]{3}$") |
||
| 599 | } |
||
| 600 | |||
| 601 | OPTIONAL { |
||
| 602 | ?airport dbo:locationIdentifier ?lid . |
||
| 603 | FILTER regex(?lid, "^[A-Z0-9]{4}$") |
||
| 604 | FILTER (!bound(?icao) || (bound(?icao) && (?icao != ?lid))) |
||
| 605 | OPTIONAL { |
||
| 606 | ?airport_y rdf:type <http://dbpedia.org/ontology/Airport> . |
||
| 607 | ?airport_y dbo:icaoLocationIdentifier ?other_icao . |
||
| 608 | FILTER (bound(?lid) && (?airport_y != ?airport && ?lid = ?other_icao)) |
||
| 609 | } |
||
| 610 | FILTER (!bound(?other_icao)) |
||
| 611 | } |
||
| 612 | |||
| 613 | OPTIONAL { |
||
| 614 | ?airport dbo:faaLocationIdentifier ?faa . |
||
| 615 | FILTER regex(?faa, "^[A-Z0-9]{3}$") |
||
| 616 | FILTER (!bound(?iata) || (bound(?iata) && (?iata != ?faa))) |
||
| 617 | OPTIONAL { |
||
| 618 | ?airport_x rdf:type <http://dbpedia.org/ontology/Airport> . |
||
| 619 | ?airport_x dbo:iataLocationIdentifier ?other_iata . |
||
| 620 | FILTER (bound(?faa) && (?airport_x != ?airport && ?faa = ?other_iata)) |
||
| 621 | } |
||
| 622 | FILTER (!bound(?other_iata)) |
||
| 623 | } |
||
| 624 | |||
| 625 | FILTER (bound(?icao) || bound(?iata) || bound(?faa) || bound(?lid)) |
||
| 626 | |||
| 627 | OPTIONAL { |
||
| 628 | ?airport rdfs:label ?name |
||
| 629 | FILTER (lang(?name) = "en") |
||
| 630 | } |
||
| 631 | |||
| 632 | OPTIONAL { |
||
| 633 | ?airport foaf:homepage ?homepage |
||
| 634 | } |
||
| 635 | |||
| 636 | OPTIONAL { |
||
| 637 | ?airport dbp:coordinatesRegion ?country |
||
| 638 | } |
||
| 639 | |||
| 640 | OPTIONAL { |
||
| 641 | ?airport dbp:type ?type |
||
| 642 | } |
||
| 643 | |||
| 644 | OPTIONAL { |
||
| 645 | ?airport dbo:elevation ?altitude |
||
| 646 | } |
||
| 647 | OPTIONAL { |
||
| 648 | ?airport dbp:image ?image |
||
| 649 | } |
||
| 650 | |||
| 651 | { |
||
| 652 | ?airport geo:lat ?latitude . |
||
| 653 | ?airport geo:long ?longitude . |
||
| 654 | FILTER (datatype(?latitude) = xsd:float) |
||
| 655 | FILTER (datatype(?longitude) = xsd:float) |
||
| 656 | } UNION { |
||
| 657 | ?airport geo:lat ?latitude . |
||
| 658 | ?airport geo:long ?longitude . |
||
| 659 | FILTER (datatype(?latitude) = xsd:double) |
||
| 660 | FILTER (datatype(?longitude) = xsd:double) |
||
| 661 | OPTIONAL { |
||
| 662 | ?airport geo:lat ?lat_f . |
||
| 663 | ?airport geo:long ?long_f . |
||
| 664 | FILTER (datatype(?lat_f) = xsd:float) |
||
| 665 | FILTER (datatype(?long_f) = xsd:float) |
||
| 666 | } |
||
| 667 | FILTER (!bound(?lat_f) && !bound(?long_f)) |
||
| 668 | } |
||
| 669 | |||
| 670 | } |
||
| 671 | ORDER BY ?airport |
||
| 672 | '; |
||
| 673 | $result = sparql_query($query); |
||
| 674 | |||
| 675 | /* |
||
| 676 | $query = 'TRUNCATE TABLE airport'; |
||
| 677 | try { |
||
| 678 | $Connection = new Connection(); |
||
| 679 | $sth = $Connection->db->prepare($query); |
||
| 680 | $sth->execute(); |
||
| 681 | } catch(PDOException $e) { |
||
| 682 | return "error : ".$e->getMessage(); |
||
| 683 | } |
||
| 684 | */ |
||
| 685 | /* |
||
| 686 | $query = 'ALTER TABLE airport DROP INDEX icaoidx'; |
||
| 687 | try { |
||
| 688 | $Connection = new Connection(); |
||
| 689 | $sth = $Connection->db->prepare($query); |
||
| 690 | $sth->execute(); |
||
| 691 | } catch(PDOException $e) { |
||
| 692 | return "error : ".$e->getMessage(); |
||
| 693 | } |
||
| 694 | */ |
||
| 695 | |||
| 696 | $query_dest = "INSERT INTO airport (name,city,country,iata,icao,latitude,longitude,altitude,type,home_link,wikipedia_link,image_thumb,image) |
||
| 697 | VALUES (:name, :city, :country, :iata, :icao, :latitude, :longitude, :altitude, :type, :home_link, :wikipedia_link, :image_thumb, :image)"; |
||
| 698 | $Connection = new Connection(); |
||
| 699 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 700 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 701 | |||
| 702 | $i = 0; |
||
| 703 | while($row = sparql_fetch_array($result)) |
||
| 704 | { |
||
| 705 | if ($i >= 1) { |
||
| 706 | //print_r($row); |
||
| 707 | if (!isset($row['iata'])) $row['iata'] = ''; |
||
| 708 | if (!isset($row['icao'])) $row['icao'] = ''; |
||
| 709 | if (!isset($row['type'])) $row['type'] = ''; |
||
| 710 | if (!isset($row['altitude'])) $row['altitude'] = ''; |
||
| 711 | if (isset($row['city_bis'])) { |
||
| 712 | $row['city'] = $row['city_bis']; |
||
| 713 | } |
||
| 714 | if (!isset($row['city'])) $row['city'] = ''; |
||
| 715 | if (!isset($row['country'])) $row['country'] = ''; |
||
| 716 | if (!isset($row['homepage'])) $row['homepage'] = ''; |
||
| 717 | if (!isset($row['wikipedia_page'])) $row['wikipedia_page'] = ''; |
||
| 718 | if (!isset($row['name'])) continue; |
||
| 719 | if (!isset($row['image'])) { |
||
| 720 | $row['image'] = ''; |
||
| 721 | $row['image_thumb'] = ''; |
||
| 722 | } else { |
||
| 723 | $image = str_replace(' ','_',$row['image']); |
||
| 724 | $digest = md5($image); |
||
| 725 | $folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . $image . '/220px-' . $image; |
||
| 726 | $row['image_thumb'] = 'http://upload.wikimedia.org/wikipedia/commons/thumb/' . $folder; |
||
| 727 | $folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . $image; |
||
| 728 | $row['image'] = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder; |
||
| 729 | } |
||
| 730 | |||
| 731 | $country = explode('-',$row['country']); |
||
| 732 | $row['country'] = $country[0]; |
||
| 733 | |||
| 734 | $row['type'] = trim($row['type']); |
||
| 735 | if ($row['type'] == 'Military: Naval Auxiliary Air Station' || $row['type'] == 'http://dbpedia.org/resource/Naval_air_station' || $row['type'] == 'Military: Naval Air Station' || $row['type'] == 'Military Northern Fleet' || $row['type'] == 'Military and industrial' || $row['type'] == 'Military: Royal Air Force station' || $row['type'] == 'http://dbpedia.org/resource/Military_airbase' || $row['type'] == 'Military: Naval air station' || preg_match('/air base/i',$row['name'])) { |
||
| 736 | $row['type'] = 'military'; |
||
| 737 | } elseif ($row['type'] == 'http://dbpedia.org/resource/Airport' || $row['type'] == 'Civil' || $row['type'] == 'Public use' || $row['type'] == 'Public' || $row['type'] == 'http://dbpedia.org/resource/Civilian' || $row['type'] == 'Public, Civilian' || $row['type'] == 'Public / Military' || $row['type'] == 'Private & Civilian' || $row['type'] == 'Civilian and Military' || $row['type'] == 'Public/military' || $row['type'] == 'Active With Few Facilities' || $row['type'] == '?ivilian' || $row['type'] == 'Civil/Military' || $row['type'] == 'NA' || $row['type'] == 'Public/Military') { |
||
| 738 | $row['type'] = 'small_airport'; |
||
| 739 | } |
||
| 740 | |||
| 741 | $row['city'] = urldecode(str_replace('_',' ',str_replace('http://dbpedia.org/resource/','',$row['city']))); |
||
| 742 | $query_dest_values = array(':name' => $row['name'],':iata' => $row['iata'],':icao' => $row['icao'],':latitude' => $row['latitude'],':longitude' => $row['longitude'],':altitude' => round($row['altitude']),':type' => $row['type'],':city' => $row['city'],':country' => $row['country'],':home_link' => $row['homepage'],':wikipedia_link' => $row['wikipedia_page'],':image' => $row['image'],':image_thumb' => $row['image_thumb']); |
||
| 743 | //print_r($query_dest_values); |
||
| 744 | |||
| 745 | if ($row['icao'] != '') { |
||
| 746 | try { |
||
| 747 | $sth = $Connection->db->prepare('SELECT COUNT(*) FROM airport WHERE icao = :icao'); |
||
| 748 | $sth->execute(array(':icao' => $row['icao'])); |
||
| 749 | } catch(PDOException $e) { |
||
| 750 | return "error : ".$e->getMessage(); |
||
| 751 | } |
||
| 752 | if ($sth->fetchColumn() > 0) { |
||
| 753 | // Update ? |
||
| 754 | $query = 'UPDATE airport SET type = :type WHERE icao = :icao'; |
||
| 755 | try { |
||
| 756 | $sth = $Connection->db->prepare($query); |
||
| 757 | $sth->execute(array(':icao' => $row['icao'],':type' => $row['type'])); |
||
| 758 | } catch(PDOException $e) { |
||
| 759 | return "error : ".$e->getMessage(); |
||
| 760 | } |
||
| 761 | echo $row['icao'].' : '.$row['type']."\n"; |
||
| 762 | } else { |
||
| 763 | try { |
||
| 764 | $sth_dest->execute($query_dest_values); |
||
| 765 | } catch(PDOException $e) { |
||
| 766 | return "error : ".$e->getMessage(); |
||
| 767 | } |
||
| 768 | } |
||
| 769 | } |
||
| 770 | } |
||
| 771 | |||
| 772 | $i++; |
||
| 773 | } |
||
| 774 | if ($globalTransaction) $Connection->db->commit(); |
||
| 775 | /* |
||
| 776 | echo "Delete duplicate rows...\n"; |
||
| 777 | $query = 'ALTER IGNORE TABLE airport ADD UNIQUE INDEX icaoidx (icao)'; |
||
| 778 | try { |
||
| 779 | $Connection = new Connection(); |
||
| 780 | $sth = $Connection->db->prepare($query); |
||
| 781 | $sth->execute(); |
||
| 782 | } catch(PDOException $e) { |
||
| 783 | return "error : ".$e->getMessage(); |
||
| 784 | } |
||
| 785 | */ |
||
| 786 | |||
| 787 | |||
| 788 | /* |
||
| 789 | if ($globalDebug) echo "Insert Not available Airport...\n"; |
||
| 790 | $query = "INSERT INTO airport (airport_id,name,city,country,iata,icao,latitude,longitude,altitude,type,home_link,wikipedia_link,image,image_thumb) |
||
| 791 | VALUES (:airport_id, :name, :city, :country, :iata, :icao, :latitude, :longitude, :altitude, :type, :home_link, :wikipedia_link, :image, :image_thumb)"; |
||
| 792 | $query_values = array(':airport_id' => $i, ':name' => 'Not available',':iata' => 'NA',':icao' => 'NA',':latitude' => '0',':longitude' => '0',':altitude' => '0',':type' => 'NA',':city' => 'N/A',':country' => 'N/A',':home_link' => '',':wikipedia_link' => '',':image' => '',':image_thumb' => ''); |
||
| 793 | try { |
||
| 794 | $Connection = new Connection(); |
||
| 795 | $sth = $Connection->db->prepare($query); |
||
| 796 | $sth->execute($query_values); |
||
| 797 | } catch(PDOException $e) { |
||
| 798 | return "error : ".$e->getMessage(); |
||
| 799 | } |
||
| 800 | */ |
||
| 801 | $i++; |
||
| 802 | /* |
||
| 803 | $query = 'DELETE FROM airport WHERE airport_id IN (SELECT * FROM (SELECT min(a.airport_id) FROM airport a GROUP BY a.icao) x)'; |
||
| 804 | try { |
||
| 805 | $Connection = new Connection(); |
||
| 806 | $sth = $Connection->db->prepare($query); |
||
| 807 | $sth->execute(); |
||
| 808 | } catch(PDOException $e) { |
||
| 809 | return "error : ".$e->getMessage(); |
||
| 810 | } |
||
| 811 | */ |
||
| 812 | |||
| 813 | echo "Download data from ourairports.com...\n"; |
||
| 814 | $delimiter = ','; |
||
| 815 | $out_file = $tmp_dir.'airports.csv'; |
||
| 816 | update_db::download('http://ourairports.com/data/airports.csv',$out_file); |
||
| 817 | if (!file_exists($out_file) || !is_readable($out_file)) return FALSE; |
||
| 818 | echo "Add data from ourairports.com...\n"; |
||
| 819 | |||
| 820 | $header = NULL; |
||
| 821 | if (($handle = fopen($out_file, 'r')) !== FALSE) |
||
| 822 | { |
||
| 823 | $Connection = new Connection(); |
||
| 824 | //$Connection->db->beginTransaction(); |
||
| 825 | while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 826 | { |
||
| 827 | if(!$header) $header = $row; |
||
| 828 | else { |
||
| 829 | $data = array(); |
||
| 830 | $data = array_combine($header, $row); |
||
| 831 | try { |
||
| 832 | $sth = $Connection->db->prepare('SELECT COUNT(*) FROM airport WHERE icao = :icao'); |
||
| 833 | $sth->execute(array(':icao' => $data['ident'])); |
||
| 834 | } catch(PDOException $e) { |
||
| 835 | return "error : ".$e->getMessage(); |
||
| 836 | } |
||
| 837 | if ($sth->fetchColumn() > 0) { |
||
| 838 | $query = 'UPDATE airport SET type = :type WHERE icao = :icao'; |
||
| 839 | try { |
||
| 840 | $sth = $Connection->db->prepare($query); |
||
| 841 | $sth->execute(array(':icao' => $data['ident'],':type' => $data['type'])); |
||
| 842 | } catch(PDOException $e) { |
||
| 843 | return "error : ".$e->getMessage(); |
||
| 844 | } |
||
| 845 | } else { |
||
| 846 | if ($data['gps_code'] == $data['ident']) { |
||
| 847 | $query = "INSERT INTO airport (name,city,country,iata,icao,latitude,longitude,altitude,type,home_link,wikipedia_link) |
||
| 848 | VALUES (:name, :city, :country, :iata, :icao, :latitude, :longitude, :altitude, :type, :home_link, :wikipedia_link)"; |
||
| 849 | $query_values = array(':name' => $data['name'],':iata' => $data['iata_code'],':icao' => $data['gps_code'],':latitude' => $data['latitude_deg'],':longitude' => $data['longitude_deg'],':altitude' => round($data['elevation_ft']),':type' => $data['type'],':city' => $data['municipality'],':country' => $data['iso_country'],':home_link' => $data['home_link'],':wikipedia_link' => $data['wikipedia_link']); |
||
| 850 | try { |
||
| 851 | $sth = $Connection->db->prepare($query); |
||
| 852 | $sth->execute($query_values); |
||
| 853 | } catch(PDOException $e) { |
||
| 854 | return "error : ".$e->getMessage(); |
||
| 855 | } |
||
| 856 | $i++; |
||
| 857 | } |
||
| 858 | } |
||
| 859 | } |
||
| 860 | } |
||
| 861 | fclose($handle); |
||
| 862 | //$Connection->db->commit(); |
||
| 863 | } |
||
| 864 | |||
| 865 | |||
| 866 | echo "Download data from another free database...\n"; |
||
| 867 | $out_file = $tmp_dir.'GlobalAirportDatabase.zip'; |
||
| 868 | update_db::download('http://www.partow.net/downloads/GlobalAirportDatabase.zip',$out_file); |
||
| 869 | if (!file_exists($out_file) || !is_readable($out_file)) return FALSE; |
||
| 870 | update_db::unzip($out_file); |
||
| 871 | $header = NULL; |
||
| 872 | echo "Add data from another free database...\n"; |
||
| 873 | $delimiter = ':'; |
||
| 874 | $Connection = new Connection(); |
||
| 875 | if (($handle = fopen($tmp_dir.'GlobalAirportDatabase.txt', 'r')) !== FALSE) |
||
| 876 | { |
||
| 877 | //$Connection->db->beginTransaction(); |
||
| 878 | while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 879 | { |
||
| 880 | if(!$header) $header = $row; |
||
| 881 | else { |
||
| 882 | $data = $row; |
||
| 883 | |||
| 884 | $query = 'UPDATE airport SET city = :city, country = :country WHERE icao = :icao'; |
||
| 885 | try { |
||
| 886 | $sth = $Connection->db->prepare($query); |
||
| 887 | $sth->execute(array(':icao' => $data[0],':city' => ucwords(strtolower($data[3])),':country' => ucwords(strtolower($data[4])))); |
||
| 888 | } catch(PDOException $e) { |
||
| 889 | return "error : ".$e->getMessage(); |
||
| 890 | } |
||
| 891 | } |
||
| 892 | } |
||
| 893 | fclose($handle); |
||
| 894 | //$Connection->db->commit(); |
||
| 895 | } |
||
| 896 | |||
| 897 | echo "Put type military for all air base"; |
||
| 898 | $Connection = new Connection(); |
||
| 899 | try { |
||
| 900 | $sth = $Connection->db->prepare("SELECT icao FROM airport WHERE name LIKE '%Air Base%'"); |
||
| 901 | $sth->execute(); |
||
| 902 | } catch(PDOException $e) { |
||
| 903 | return "error : ".$e->getMessage(); |
||
| 904 | } |
||
| 905 | while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { |
||
| 906 | $query2 = 'UPDATE airport SET type = :type WHERE icao = :icao'; |
||
| 907 | try { |
||
| 908 | $sth2 = $Connection->db->prepare($query2); |
||
| 909 | $sth2->execute(array(':icao' => $row['icao'],':type' => 'military')); |
||
| 910 | } catch(PDOException $e) { |
||
| 911 | return "error : ".$e->getMessage(); |
||
| 912 | } |
||
| 913 | } |
||
| 914 | return "success"; |
||
| 915 | } |
||
| 916 | |||
| 917 | public static function translation() { |
||
| 918 | require_once(dirname(__FILE__).'/../require/class.Spotter.php'); |
||
| 919 | global $tmp_dir, $globalTransaction; |
||
| 920 | $Spotter = new Spotter(); |
||
| 921 | //$out_file = $tmp_dir.'translation.zip'; |
||
| 922 | //update_db::download('http://www.acarsd.org/download/translation.php',$out_file); |
||
| 923 | //if (!file_exists($out_file) || !is_readable($out_file)) return FALSE; |
||
| 924 | |||
| 925 | //$query = 'TRUNCATE TABLE translation'; |
||
| 926 | $query = "DELETE FROM translation WHERE Source = '' OR Source = :source"; |
||
| 927 | try { |
||
| 928 | $Connection = new Connection(); |
||
| 929 | $sth = $Connection->db->prepare($query); |
||
| 930 | $sth->execute(array(':source' => 'translation.csv')); |
||
| 931 | } catch(PDOException $e) { |
||
| 932 | return "error : ".$e->getMessage(); |
||
| 933 | } |
||
| 934 | |||
| 935 | |||
| 936 | //update_db::unzip($out_file); |
||
| 937 | $header = NULL; |
||
| 938 | $delimiter = ';'; |
||
| 939 | $Connection = new Connection(); |
||
| 940 | if (($handle = fopen($tmp_dir.'translation.csv', 'r')) !== FALSE) |
||
| 941 | { |
||
| 942 | $i = 0; |
||
| 943 | //$Connection->db->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE); |
||
| 944 | //$Connection->db->beginTransaction(); |
||
| 945 | while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 946 | { |
||
| 947 | $i++; |
||
| 948 | if($i > 12) { |
||
| 949 | $data = $row; |
||
| 950 | $operator = $data[2]; |
||
| 951 | if ($operator != '' && is_numeric(substr(substr($operator, 0, 3), -1, 1))) { |
||
| 952 | $airline_array = $Spotter->getAllAirlineInfo(substr($operator, 0, 2)); |
||
| 953 | //echo substr($operator, 0, 2)."\n";; |
||
| 954 | if (count($airline_array) > 0) { |
||
| 955 | //print_r($airline_array); |
||
| 956 | $operator = $airline_array[0]['icao'].substr($operator,2); |
||
| 957 | } |
||
| 958 | } |
||
| 959 | |||
| 960 | $operator_correct = $data[3]; |
||
| 961 | if ($operator_correct != '' && is_numeric(substr(substr($operator_correct, 0, 3), -1, 1))) { |
||
| 962 | $airline_array = $Spotter->getAllAirlineInfo(substr($operator_correct, 0, 2)); |
||
| 963 | if (count($airline_array) > 0) { |
||
| 964 | $operator_correct = $airline_array[0]['icao'].substr($operator_correct,2); |
||
| 965 | } |
||
| 966 | } |
||
| 967 | $query = 'INSERT INTO translation (Reg,Reg_correct,Operator,Operator_correct,Source) VALUES (:Reg, :Reg_correct, :Operator, :Operator_correct, :source)'; |
||
| 968 | try { |
||
| 969 | $sth = $Connection->db->prepare($query); |
||
| 970 | $sth->execute(array(':Reg' => $data[0],':Reg_correct' => $data[1],':Operator' => $operator,':Operator_correct' => $operator_correct, ':source' => 'translation.csv')); |
||
| 971 | } catch(PDOException $e) { |
||
| 972 | return "error : ".$e->getMessage(); |
||
| 973 | } |
||
| 974 | } |
||
| 975 | } |
||
| 976 | fclose($handle); |
||
| 977 | //$Connection->db->commit(); |
||
| 978 | } |
||
| 979 | return ''; |
||
| 980 | } |
||
| 981 | |||
| 982 | public static function translation_fam() { |
||
| 983 | global $tmp_dir, $globalTransaction; |
||
| 984 | $query = "DELETE FROM translation WHERE Source = '' OR Source = :source"; |
||
| 985 | try { |
||
| 986 | $Connection = new Connection(); |
||
| 987 | $sth = $Connection->db->prepare($query); |
||
| 988 | $sth->execute(array(':source' => 'website_fam')); |
||
| 989 | } catch(PDOException $e) { |
||
| 990 | return "error : ".$e->getMessage(); |
||
| 991 | } |
||
| 992 | //update_db::unzip($out_file); |
||
| 993 | $header = NULL; |
||
| 994 | $delimiter = "\t"; |
||
| 995 | $Connection = new Connection(); |
||
| 996 | if (($handle = fopen($tmp_dir.'translation.tsv', 'r')) !== FALSE) |
||
| 997 | { |
||
| 998 | $i = 0; |
||
| 999 | //$Connection->db->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE); |
||
| 1000 | //$Connection->db->beginTransaction(); |
||
| 1001 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1002 | { |
||
| 1003 | if ($i > 0) { |
||
| 1004 | $query = 'INSERT INTO translation (Reg,Reg_correct,Operator,Operator_correct,Source) VALUES (:Reg, :Reg_correct, :Operator, :Operator_correct, :source)'; |
||
| 1005 | try { |
||
| 1006 | $sth = $Connection->db->prepare($query); |
||
| 1007 | $sth->execute(array(':Reg' => $data[0],':Reg_correct' => $data[1],':Operator' => $data[2],':Operator_correct' => $data[3], ':source' => 'website_fam')); |
||
| 1008 | } catch(PDOException $e) { |
||
| 1009 | return "error : ".$e->getMessage(); |
||
| 1010 | } |
||
| 1011 | } |
||
| 1012 | $i++; |
||
| 1013 | } |
||
| 1014 | fclose($handle); |
||
| 1015 | //$Connection->db->commit(); |
||
| 1016 | } |
||
| 1017 | return ''; |
||
| 1018 | } |
||
| 1019 | |||
| 1020 | /* |
||
| 1021 | * This function use FAA public data. |
||
| 1022 | * With the help of data from other source, Mfr id is added to manufacturer table. Then ModeS with ICAO are added based on that. |
||
| 1023 | */ |
||
| 1024 | public static function modes_faa() { |
||
| 1025 | global $tmp_dir, $globalTransaction, $globalDebug; |
||
| 1026 | $query = "DELETE FROM aircraft_modes WHERE Source = '' OR Source = :source"; |
||
| 1027 | try { |
||
| 1028 | $Connection = new Connection(); |
||
| 1029 | $sth = $Connection->db->prepare($query); |
||
| 1030 | $sth->execute(array(':source' => 'website_faa')); |
||
| 1031 | } catch(PDOException $e) { |
||
| 1032 | return "error : ".$e->getMessage(); |
||
| 1033 | } |
||
| 1034 | |||
| 1035 | $query = "DELETE FROM aircraft_owner WHERE Source = '' OR Source = :source"; |
||
| 1036 | try { |
||
| 1037 | $Connection = new Connection(); |
||
| 1038 | $sth = $Connection->db->prepare($query); |
||
| 1039 | $sth->execute(array(':source' => 'website_faa')); |
||
| 1040 | } catch(PDOException $e) { |
||
| 1041 | return "error : ".$e->getMessage(); |
||
| 1042 | } |
||
| 1043 | |||
| 1044 | $delimiter = ","; |
||
| 1045 | $mfr = array(); |
||
| 1046 | $Connection = new Connection(); |
||
| 1047 | if (($handle = fopen($tmp_dir.'MASTER.txt', 'r')) !== FALSE) |
||
| 1048 | { |
||
| 1049 | $i = 0; |
||
| 1050 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1051 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1052 | { |
||
| 1053 | if ($i > 0) { |
||
| 1054 | $query_search = 'SELECT icaotypecode FROM aircraft_modes WHERE registration = :registration AND Source <> :source LIMIT 1'; |
||
| 1055 | try { |
||
| 1056 | $sths = $Connection->db->prepare($query_search); |
||
| 1057 | $sths->execute(array(':registration' => 'N'.$data[0],':source' => 'website_faa')); |
||
| 1058 | } catch(PDOException $e) { |
||
| 1059 | return "error s : ".$e->getMessage(); |
||
| 1060 | } |
||
| 1061 | $result_search = $sths->fetchAll(PDO::FETCH_ASSOC); |
||
| 1062 | if (!empty($result_search)) { |
||
| 1063 | if ($globalDebug) echo '.'; |
||
| 1064 | //if ($globalDBdriver == 'mysql') { |
||
| 1065 | // $queryi = 'INSERT INTO faamfr (mfr,icao) VALUES (:mfr,:icao) ON DUPLICATE KEY UPDATE icao = :icao'; |
||
| 1066 | //} else { |
||
| 1067 | $queryi = "INSERT INTO faamfr (mfr,icao) SELECT :mfr,:icao WHERE NOT EXISTS (SELECT 1 FROM faamfr WHERE mfr = :mfr);"; |
||
| 1068 | //} |
||
| 1069 | try { |
||
| 1070 | $sthi = $Connection->db->prepare($queryi); |
||
| 1071 | $sthi->execute(array(':mfr' => $data[2],':icao' => $result_search[0]['icaotypecode'])); |
||
| 1072 | } catch(PDOException $e) { |
||
| 1073 | return "error u : ".$e->getMessage(); |
||
| 1074 | } |
||
| 1075 | } else { |
||
| 1076 | $query_search_mfr = 'SELECT icao FROM faamfr WHERE mfr = :mfr'; |
||
| 1077 | try { |
||
| 1078 | $sthsm = $Connection->db->prepare($query_search_mfr); |
||
| 1079 | $sthsm->execute(array(':mfr' => $data[2])); |
||
| 1080 | } catch(PDOException $e) { |
||
| 1081 | return "error mfr : ".$e->getMessage(); |
||
| 1082 | } |
||
| 1083 | $result_search_mfr = $sthsm->fetchAll(PDO::FETCH_ASSOC); |
||
| 1084 | if (!empty($result_search_mfr)) { |
||
| 1085 | if (trim($data[16]) == '' && trim($data[23]) != '') $data[16] = $data[23]; |
||
| 1086 | if (trim($data[16]) == '' && trim($data[15]) != '') $data[16] = $data[15]; |
||
| 1087 | $queryf = 'INSERT INTO aircraft_modes (FirstCreated,LastModified,ModeS,ModeSCountry,Registration,ICAOTypeCode,Source) VALUES (:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:source)'; |
||
| 1088 | try { |
||
| 1089 | $sthf = $Connection->db->prepare($queryf); |
||
| 1090 | $sthf->execute(array(':FirstCreated' => $data[16],':LastModified' => $data[15],':ModeS' => $data[33],':ModeSCountry' => $data[14], ':Registration' => 'N'.$data[0],':ICAOTypeCode' => $result_search_mfr[0]['icao'],':source' => 'website_faa')); |
||
| 1091 | } catch(PDOException $e) { |
||
| 1092 | return "error f : ".$e->getMessage(); |
||
| 1093 | } |
||
| 1094 | } |
||
| 1095 | } |
||
| 1096 | if (strtotime($data[29]) > time()) { |
||
| 1097 | if ($globalDebug) echo 'i'; |
||
| 1098 | $query = 'INSERT INTO aircraft_owner (registration,base,owner,date_first_reg,Source) VALUES (:registration,:base,:owner,:date_first_reg,:source)'; |
||
| 1099 | try { |
||
| 1100 | $sth = $Connection->db->prepare($query); |
||
| 1101 | $sth->execute(array(':registration' => 'N'.$data[0],':base' => $data[9],':owner' => ucwords(strtolower($data[6])),':date_first_reg' => date('Y-m-d',strtotime($data[23])), ':source' => 'website_faa')); |
||
| 1102 | } catch(PDOException $e) { |
||
| 1103 | return "error i : ".$e->getMessage(); |
||
| 1104 | } |
||
| 1105 | } |
||
| 1106 | } |
||
| 1107 | if ($i % 90 == 0) { |
||
| 1108 | if ($globalTransaction) $Connection->db->commit(); |
||
| 1109 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1110 | } |
||
| 1111 | $i++; |
||
| 1112 | } |
||
| 1113 | fclose($handle); |
||
| 1114 | if ($globalTransaction) $Connection->db->commit(); |
||
| 1115 | } |
||
| 1116 | //print_r($mfr); |
||
| 1117 | return ''; |
||
| 1118 | } |
||
| 1119 | public static function modes_fam() { |
||
| 1120 | global $tmp_dir, $globalTransaction; |
||
| 1121 | $query = "DELETE FROM aircraft_modes WHERE Source = '' OR Source = :source"; |
||
| 1122 | try { |
||
| 1123 | $Connection = new Connection(); |
||
| 1124 | $sth = $Connection->db->prepare($query); |
||
| 1125 | $sth->execute(array(':source' => 'website_fam')); |
||
| 1126 | } catch(PDOException $e) { |
||
| 1127 | return "error : ".$e->getMessage(); |
||
| 1128 | } |
||
| 1129 | |||
| 1130 | |||
| 1131 | //update_db::unzip($out_file); |
||
| 1132 | $delimiter = "\t"; |
||
| 1133 | $Connection = new Connection(); |
||
| 1134 | if (($handle = fopen($tmp_dir.'modes.tsv', 'r')) !== FALSE) |
||
| 1135 | { |
||
| 1136 | $i = 0; |
||
| 1137 | //$Connection->db->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE); |
||
| 1138 | //$Connection->db->beginTransaction(); |
||
| 1139 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1140 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1141 | { |
||
| 1142 | if ($i > 0) { |
||
| 1143 | if ($data[1] == 'NULL') $data[1] = $data[0]; |
||
| 1144 | $query = 'INSERT INTO aircraft_modes (FirstCreated,LastModified,ModeS,ModeSCountry,Registration,ICAOTypeCode,type_flight,Source) VALUES (:FirstCreated,:LastModified,:ModeS,:ModeSCountry,:Registration,:ICAOTypeCode,:type_flight,:source)'; |
||
| 1145 | try { |
||
| 1146 | $sth = $Connection->db->prepare($query); |
||
| 1147 | $sth->execute(array(':FirstCreated' => $data[0],':LastModified' => $data[1],':ModeS' => $data[2],':ModeSCountry' => $data[3], ':Registration' => $data[4],':ICAOTypeCode' => $data[5],':type_flight' => $data[6],':source' => 'website_fam')); |
||
| 1148 | } catch(PDOException $e) { |
||
| 1149 | return "error : ".$e->getMessage(); |
||
| 1150 | } |
||
| 1151 | } |
||
| 1152 | $i++; |
||
| 1153 | } |
||
| 1154 | fclose($handle); |
||
| 1155 | if ($globalTransaction) $Connection->db->commit(); |
||
| 1156 | } |
||
| 1157 | return ''; |
||
| 1158 | } |
||
| 1159 | |||
| 1160 | public static function owner_fam() { |
||
| 1161 | global $tmp_dir, $globalTransaction; |
||
| 1162 | $query = "DELETE FROM aircraft_owner WHERE Source = '' OR Source = :source"; |
||
| 1163 | try { |
||
| 1164 | $Connection = new Connection(); |
||
| 1165 | $sth = $Connection->db->prepare($query); |
||
| 1166 | $sth->execute(array(':source' => 'website_fam')); |
||
| 1167 | } catch(PDOException $e) { |
||
| 1168 | return "error : ".$e->getMessage(); |
||
| 1169 | } |
||
| 1170 | |||
| 1171 | $delimiter = "\t"; |
||
| 1172 | $Connection = new Connection(); |
||
| 1173 | if (($handle = fopen($tmp_dir.'owners.tsv', 'r')) !== FALSE) |
||
| 1174 | { |
||
| 1175 | $i = 0; |
||
| 1176 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1177 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1178 | { |
||
| 1179 | if ($i > 0) { |
||
| 1180 | $query = 'INSERT INTO aircraft_owner (registration,base,owner,date_first_reg,Source) VALUES (:registration,:base,:owner,NULL,:source)'; |
||
| 1181 | try { |
||
| 1182 | $sth = $Connection->db->prepare($query); |
||
| 1183 | $sth->execute(array(':registration' => $data[0],':base' => $data[1],':owner' => $data[2], ':source' => 'website_fam')); |
||
| 1184 | } catch(PDOException $e) { |
||
| 1185 | //print_r($data); |
||
| 1186 | return "error : ".$e->getMessage(); |
||
| 1187 | } |
||
| 1188 | } |
||
| 1189 | $i++; |
||
| 1190 | } |
||
| 1191 | fclose($handle); |
||
| 1192 | if ($globalTransaction) $Connection->db->commit(); |
||
| 1193 | } |
||
| 1194 | return ''; |
||
| 1195 | } |
||
| 1196 | |||
| 1197 | public static function routes_fam() { |
||
| 1198 | global $tmp_dir, $globalTransaction, $globalDebug; |
||
| 1199 | $query = "DELETE FROM routes WHERE Source = '' OR Source = :source"; |
||
| 1200 | try { |
||
| 1201 | $Connection = new Connection(); |
||
| 1202 | $sth = $Connection->db->prepare($query); |
||
| 1203 | $sth->execute(array(':source' => 'website_fam')); |
||
| 1204 | } catch(PDOException $e) { |
||
| 1205 | return "error : ".$e->getMessage(); |
||
| 1206 | } |
||
| 1207 | $delimiter = "\t"; |
||
| 1208 | $Connection = new Connection(); |
||
| 1209 | if (($handle = fopen($tmp_dir.'routes.tsv', 'r')) !== FALSE) |
||
| 1210 | { |
||
| 1211 | $i = 0; |
||
| 1212 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1213 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1214 | { |
||
| 1215 | if ($i > 0) { |
||
| 1216 | $query = 'INSERT INTO routes (CallSign,Operator_ICAO,FromAirport_ICAO,FromAirport_Time,ToAirport_ICAO,ToAirport_Time,RouteStop,Source) VALUES (:CallSign,:Operator_ICAO,:FromAirport_ICAO,:FromAirport_Time,:ToAirport_ICAO,:ToAirport_Time,:RouteStop,:source)'; |
||
| 1217 | try { |
||
| 1218 | $sth = $Connection->db->prepare($query); |
||
| 1219 | $sth->execute(array(':CallSign' => $data[0],':Operator_ICAO' => $data[1],':FromAirport_ICAO' => $data[2],':FromAirport_Time' => $data[3], ':ToAirport_ICAO' => $data[4],':ToAirport_Time' => $data[5],':RouteStop' => $data[6],':source' => 'website_fam')); |
||
| 1220 | } catch(PDOException $e) { |
||
| 1221 | if ($globalDebug) echo "error: ".$e->getMessage()." - data: ".implode(',',$data); |
||
| 1222 | } |
||
| 1223 | } |
||
| 1224 | $i++; |
||
| 1225 | } |
||
| 1226 | fclose($handle); |
||
| 1227 | if ($globalTransaction) $Connection->db->commit(); |
||
| 1228 | } |
||
| 1229 | return ''; |
||
| 1230 | } |
||
| 1231 | |||
| 1232 | public static function marine_identity_fam() { |
||
| 1272 | |||
| 1273 | public static function satellite_fam() { |
||
| 1274 | global $tmp_dir, $globalTransaction; |
||
| 1275 | $query = "TRUNCATE TABLE satellite"; |
||
| 1276 | try { |
||
| 1277 | $Connection = new Connection(); |
||
| 1278 | $sth = $Connection->db->prepare($query); |
||
| 1279 | $sth->execute(); |
||
| 1280 | } catch(PDOException $e) { |
||
| 1281 | return "error : ".$e->getMessage(); |
||
| 1282 | } |
||
| 1283 | $delimiter = "\t"; |
||
| 1284 | $Connection = new Connection(); |
||
| 1285 | if (($handle = fopen($tmp_dir.'satellite.tsv', 'r')) !== FALSE) |
||
| 1286 | { |
||
| 1287 | $i = 0; |
||
| 1288 | if ($globalTransaction) $Connection->db->beginTransaction(); |
||
| 1289 | while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) |
||
| 1290 | { |
||
| 1309 | |||
| 1310 | public static function banned_fam() { |
||
| 1343 | |||
| 1344 | public static function tle($filename,$tletype) { |
||
| 1392 | |||
| 1393 | public static function satellite_ucsdb($filename) { |
||
| 1438 | |||
| 1439 | public static function satellite_celestrak($filename) { |
||
| 1669 | |||
| 1670 | /** |
||
| 1671 | * Convert a HTML table to an array |
||
| 1672 | * @param String $data HTML page |
||
| 1673 | * @return Array array of the tables in HTML page |
||
| 1674 | */ |
||
| 1675 | /* |
||
| 1676 | private static function table2array($data) { |
||
| 1677 | $html = str_get_html($data); |
||
| 1678 | $tabledata=array(); |
||
| 1679 | foreach($html->find('tr') as $element) |
||
| 1680 | { |
||
| 1681 | $td = array(); |
||
| 1682 | foreach( $element->find('th') as $row) |
||
| 1683 | { |
||
| 1684 | $td [] = trim($row->plaintext); |
||
| 1685 | } |
||
| 1686 | $td=array_filter($td); |
||
| 1687 | $tabledata[] = $td; |
||
| 1688 | |||
| 1689 | $td = array(); |
||
| 1690 | $tdi = array(); |
||
| 1691 | foreach( $element->find('td') as $row) |
||
| 1692 | { |
||
| 1693 | $td [] = trim($row->plaintext); |
||
| 1694 | $tdi [] = trim($row->innertext); |
||
| 1695 | } |
||
| 1696 | $td=array_filter($td); |
||
| 1697 | $tdi=array_filter($tdi); |
||
| 1698 | // $tabledata[]=array_merge($td,$tdi); |
||
| 1699 | $tabledata[]=$td; |
||
| 1700 | } |
||
| 1701 | return(array_filter($tabledata)); |
||
| 1702 | } |
||
| 1703 | */ |
||
| 1704 | /** |
||
| 1705 | * Get data from form result |
||
| 1706 | * @param String $url form URL |
||
| 1707 | * @return String the result |
||
| 1708 | */ |
||
| 1709 | /* |
||
| 1710 | private static function getData($url) { |
||
| 1711 | $ch = curl_init(); |
||
| 1712 | curl_setopt($ch, CURLOPT_URL, $url); |
||
| 1713 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
||
| 1714 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); |
||
| 1715 | curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); |
||
| 1716 | return curl_exec($ch); |
||
| 1717 | } |
||
| 1718 | */ |
||
| 1719 | /* |
||
| 1720 | public static function waypoints() { |
||
| 1721 | $data = update_db::getData('http://www.fallingrain.com/world/FR/waypoints.html'); |
||
| 1722 | $table = update_db::table2array($data); |
||
| 1723 | // print_r($table); |
||
| 1724 | $query = 'TRUNCATE TABLE waypoints'; |
||
| 1725 | try { |
||
| 1726 | $Connection = new Connection(); |
||
| 1727 | $sth = $Connection->db->prepare($query); |
||
| 1728 | $sth->execute(); |
||
| 1729 | } catch(PDOException $e) { |
||
| 1730 | return "error : ".$e->getMessage(); |
||
| 1731 | } |
||
| 1732 | |||
| 1733 | $query_dest = 'INSERT INTO waypoints (ident,latitude,longitude,control,usage) VALUES (:ident, :latitude, :longitude, :control, :usage)'; |
||
| 1734 | $Connection = new Connection(); |
||
| 1735 | $sth_dest = $Connection->db->prepare($query_dest); |
||
| 1736 | $Connection->db->beginTransaction(); |
||
| 1737 | foreach ($table as $row) { |
||
| 1738 | if ($row[0] != 'Ident') { |
||
| 1739 | $ident = $row[0]; |
||
| 1740 | $latitude = $row[2]; |
||
| 1741 | $longitude = $row[3]; |
||
| 1742 | $control = $row[4]; |
||
| 1743 | if (isset($row[5])) $usage = $row[5]; else $usage = ''; |
||
| 1744 | $query_dest_values = array(':ident' => $ident,':latitude' => $latitude,':longitude' => $longitude,':control' => $control,':usage' => $usage); |
||
| 1745 | try { |
||
| 1746 | $sth_dest->execute($query_dest_values); |
||
| 1747 | } catch(PDOException $e) { |
||
| 1748 | return "error : ".$e->getMessage(); |
||
| 1749 | } |
||
| 1750 | } |
||
| 1751 | } |
||
| 1752 | $Connection->db->commit(); |
||
| 1753 | |||
| 1754 | } |
||
| 1755 | */ |
||
| 1756 | public static function waypoints($filename) { |
||
| 1802 | |||
| 1803 | public static function ivao_airlines($filename) { |
||
| 1839 | |||
| 1840 | public static function update_airspace() { |
||
| 1870 | |||
| 1871 | public static function update_notam_fam() { |
||
| 1891 | |||
| 1892 | public static function update_vatsim() { |
||
| 1898 | |||
| 1899 | public static function update_countries() { |
||
| 1920 | |||
| 1921 | |||
| 1922 | public static function update_waypoints() { |
||
| 1933 | |||
| 1934 | public static function update_ivao() { |
||
| 1956 | |||
| 1957 | public static function update_routes() { |
||
| 2037 | |||
| 2038 | public static function update_ModeS_faa() { |
||
| 2053 | |||
| 2054 | public static function update_ModeS_flarm() { |
||
| 2067 | |||
| 2068 | public static function update_ModeS_ogn() { |
||
| 2081 | |||
| 2082 | public static function update_owner() { |
||
| 2288 | |||
| 2289 | public static function update_translation() { |
||
| 2305 | |||
| 2306 | public static function update_translation_fam() { |
||
| 2395 | |||
| 2396 | public static function update_satellite_fam() { |
||
| 2436 | |||
| 2437 | public static function update_airspace_fam() { |
||
| 2480 | |||
| 2481 | public static function update_geoid_fam() { |
||
| 2505 | |||
| 2506 | public static function update_tle() { |
||
| 2525 | |||
| 2526 | public static function update_ucsdb() { |
||
| 2539 | |||
| 2540 | public static function update_celestrak() { |
||
| 2553 | |||
| 2554 | public static function update_models() { |
||
| 2590 | |||
| 2591 | public static function update_space_models() { |
||
| 2627 | |||
| 2628 | public static function update_vehicules_models() { |
||
| 2664 | |||
| 2665 | public static function update_aircraft() { |
||
| 2688 | |||
| 2689 | public static function update_notam() { |
||
| 2771 | |||
| 2772 | public static function create_airspace() { |
||
| 2806 | |||
| 2807 | public static function fix_icaotype() { |
||
| 2821 | |||
| 2822 | public static function check_last_update() { |
||
| 2840 | |||
| 2841 | public static function insert_last_update() { |
||
| 2852 | |||
| 2853 | public static function check_airspace_version($version) { |
||
| 2866 | |||
| 2867 | public static function check_geoid_version($version) { |
||
| 2880 | |||
| 2881 | public static function check_marine_identity_version($version) { |
||
| 2894 | |||
| 2895 | public static function check_satellite_version($version) { |
||
| 2908 | |||
| 2909 | |||
| 2910 | public static function insert_airspace_version($version) { |
||
| 2921 | |||
| 2922 | public static function insert_geoid_version($version) { |
||
| 2933 | |||
| 2934 | public static function insert_marine_identity_version($version) { |
||
| 2945 | |||
| 2946 | public static function insert_satellite_version($version) { |
||
| 2957 | |||
| 2958 | public static function check_last_notam_update() { |
||
| 2976 | |||
| 2977 | public static function insert_last_notam_update() { |
||
| 2988 | |||
| 2989 | public static function check_last_airspace_update() { |
||
| 3007 | |||
| 3008 | public static function insert_last_airspace_update() { |
||
| 3019 | |||
| 3020 | public static function check_last_geoid_update() { |
||
| 3038 | |||
| 3039 | public static function insert_last_geoid_update() { |
||
| 3050 | |||
| 3051 | public static function check_last_owner_update() { |
||
| 3069 | |||
| 3070 | public static function insert_last_owner_update() { |
||
| 3099 | |||
| 3100 | public static function insert_last_schedules_update() { |
||
| 3111 | |||
| 3112 | public static function check_last_tle_update() { |
||
| 3130 | |||
| 3131 | public static function insert_last_tle_update() { |
||
| 3142 | |||
| 3143 | public static function check_last_ucsdb_update() { |
||
| 3161 | |||
| 3162 | public static function insert_last_ucsdb_update() { |
||
| 3173 | |||
| 3174 | public static function check_last_celestrak_update() { |
||
| 3192 | |||
| 3193 | public static function insert_last_celestrak_update() { |
||
| 3204 | |||
| 3205 | public static function check_last_marine_identity_update() { |
||
| 3223 | |||
| 3224 | public static function check_last_satellite_update() { |
||
| 3242 | |||
| 3243 | public static function insert_last_marine_identity_update() { |
||
| 3254 | |||
| 3255 | public static function insert_last_satellite_update() { |
||
| 3266 | |||
| 3267 | public static function delete_duplicatemodes() { |
||
| 3297 | |||
| 3298 | public static function update_all() { |
||
| 3328 | } |
||
| 3329 | |||
| 3360 |
Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.