虎泰克博客

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


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

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

虎rrso泰wi克hxv新b闻hmat网ew版权所有,请勿未授权转载!!!


<?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;
}
?>




ถ้าคุณมีข้อมูลอื่นๆใดๆเกี่ยวกับเรื่องนี้กรุณาเพิ่มฟรี

เข้าสู่ระบบเพื่อแสดงความคิดเห็น

แสดงความคิดเห็น

    ไม่มีข้อมูล