虎泰克博客

利用PHP解析IATA航班计划SSIM文件


​今天接到需求要对SSIM文件进行解析,于是根据IATA提供的SSIM文件标准使用PHP的sscanf函数进行解析。

今天接到需求要对SSIM文件进行解析,于是根据IATA提供的SSIM文件标准使用PHP的sscanf函数进行解析。

虎l泰hhk_克e_x新__闻bu网sa版权所有,请勿未授权转载!!!


<?php
function parseSSIM() {
    $_ssim = file_get_contents('DEMBC.SSIM-MF.201013223500.txt');
    $ssim = str_replace(' ', '*', $_ssim);
    $content = explode("\n3", $ssim);
    unset($_ssim, $ssim, $content[0]);
    foreach ($content as $flight) {
        $flightData = explode("\n", $flight);
        $rec = array();
        sscanf('3' . $flightData[0], "%1s%1s%3s%4s%2s%2s%1s%7s%7s%7s%1s%3s%4s%4s%5s%2s%3s%4s%4s%5s%2s%3s%20s%5s%10s%9s%2s%6s%1s%3s%3s%3s%3s%4s%1s%1s%1s%1s%1s%11s%1s%11s%20s%2s", $rec['recordType'], $rec['operationalSuffix'], $rec['airline'], $rec['flightNumber'], $rec['itineraryVariation'], $rec['legSequenceNumber'], $rec['serviceType'], $rec['operationFrom'], $rec['operationTo'], $rec['operationDays'], $rec['frequencyRate'], $rec['departureStation'], $rec['passengerSTD'], $rec['STD'], $rec['deptureUTC'], $rec['departureTerminal'], $rec['arrivalStation'], $rec['STA'], $rec['passengerSTA'], $rec['arrivalUTC'], $rec['arrivalTerminal'], $rec['aircraftType'], $rec['PRBD'], $rec['PRBM'], $rec['mealSeviceNote'], $rec['jointOperationAirline'], $rec['MCT'], $rec['spare'], $rec['itineraryVariationOverflow'], $rec['aircraftOwner'], $rec['cockpitCrewEmployer'], $rec['cabinCrewEmployer'], $rec['airlineDesignator'], $rec['flightNumber2'], $rec['aircraftRotation'], $rec['operationalSuffix2'], $rec['spare2'], $rec['flightTransitLayover'], $rec['codeshare'], $rec['trafficRestrictionCode'], $rec['trafficRestrictionCodeLeg'], $rec['spare3'], $rec['aircraftConfiguration'], $rec['dateVariation']);
        $isCodeshare = false;
        foreach ($flightData as $info) {
            $type = array();
            sscanf($info, "%1s%1s%3s%4s%2s%2s%1s%13s%1s%1s%1s%3s%3s%3s%155s", $type['recordType'], $type['operationalSuffix'], $type['airline'], $type['flightNumber'], $type['itineraryVariation'], $type['legSequenceNumber'], $type['serviceType'], $type['spare'], $type['itineraryVariationOverflow'], $type['boardPoint'], $type['offPoint'], $type['dataElement'], $type['departureStation'], $type['arrivalStation'], $type['data']);
            if ($type['dataElement'] === '010' || $type['dataElement'] === '050') {
                $isCodeshare = true;
            }
            $rec['info'][] = $type;
        }
        if ($isCodeshare) $data[] = $rec;
        unset($rec, $flightData);
    }
    unset($info, $flight, $content);
    
    return $data;
}
?>




Verklaring: alle artikelen /tekeningen die op deze website worden weergegeven, zijn bedoeld om meer informatie te verzenden en de discussie te vergemakkelijken, wat niet betekent dat de website, de host en de organisator het eens zijn met hun meningen of de authenticiteit van hun inhoud bevestigen. De inhoud van de artikelen is alleen voor referentie. Indien de rechten van de oorspronkelijke auteur worden geschonden, neem dan contact op met de beheerder van de website.

Schrijf in om commentaar te geven

Lijst van opmerkingen

    Geen gegevens