3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Input, später zu ersetzen durch $get $Input_ICAO_Airport = "KHII"; getMetar($Input_ICAO_Airport); function getMetar($ICAO_Code) { // Filter um sicherzustellen, dass ein valider code eingegeben wurde $opt = array( "options" => array( "regexp" => "/^[a-zA-Z]{4}$/" ) ); if (filter_var($ICAO_Code, FILTER_VALIDATE_REGEXP, $opt)) { $ICAO_Code = strtoupper($ICAO_Code); $filename = "ftp://tgftp.nws.noaa.gov/data/observations/metar/stations/{$ICAO_Code}.TXT"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); echo $contents; if (strlen($contents) < 5) { myerror("Erhaltenes Metar nicht valide!"); } else { $resRaw = preg_split("/\s+/", $contents); array_pop($resRaw); $translation = array(); $translation["airport"] = $resRaw[2]; //ICAO CODE der Station $translation["month"] = substr($resRaw[0], 5, 2); //Monat $translation["day"] = substr($resRaw[0], 8, 2); // Tag $translation["year"] = substr($resRaw[0], 0, 4); // Jahr $translation["timezone"] = strtoupper(substr($resRaw[3], 6, 1)); // Z = UTC // In US Metars wird angegeben, ob die Werte automatisch erstellt werden, oder eine manuelle // Korrektur erfolgt. if (strtoupper($resRaw[4]) == "COR" || strtoupper($resRaw[4]) == "AUTO") { $translation["correctionMode"] = strtoupper($resRaw[4]); $i = 5; } else { $translation["correctionMode"] = "none"; $i = 4; } // nächster Block ist der Wind // es gibt im Grunde die folgenden Möglichkeiten // a) 00000KMH bzw. KT bzw. MPS // b) VRBdd(d)KMH bzw KT bzw MPS d= ziffer VRB = Variabel // c) ddddd(d)KMH bzw KT bzw MPS d= ziffer wobei die ersten 3 immer die Windrichtung sind // d) ddddd(d)Gdd(d)KMH bzw KT bzw MPS d= ziffer wobei die ersten 3 immer die Windrichtung sind $wind_raw = $resRaw[$i]; $i++; // untersuche die ersten 5 Digits vom Wind // wenn diese 00000 sind, ist es Windstill vgl. a) if (strtoupper(substr($wind_raw, 0, 5)) == "00000") { $translation["windclear"] = "windstill"; $translation["boolWind"] = false; $translation["windfrom_a"] = 0; $translation["windfrom_b"] = 0; $translation["mainWindspeed"] = 0; // die Einheit für den Wind wird dann hier ausgelesen $translation["mainWindspeedUnit"] = unitUnifier(trim(substr($wind_raw, 5, 3))); // untersuche die ersten 3 Digits auf VRB } elseif (strtoupper(substr($wind_raw, 0, 3)) == "VRB") { $translation["windclear"] = "Windrichtung variabel"; $translation["boolWind"] = true; // ansonsten sind die ersten 3 Digits immer die Windrichtung } else { $tmpwdirection = strtoupper(substr($wind_raw, 0, 3)); $translation["windclear"] = "Wind aus {$tmpwdirection} Grad"; $translation["boolWind"] = true; } // wenn es also Wind vorhanden = Variante b) oder c) oder d) if ($translation["boolWind"]) { // check ob Boeen vorhanden sind $pos = strpos(strtoupper($wind_raw) , "G"); if ($pos !== false) { $translation["gusts"] = true; if ($pos == 5) { $translation["mainWindspeed"] = substr($wind_raw, 3, 2); $translation["windclear"] = $translation["windclear"] . " mit {$translation["mainWindspeed"]}"; } elseif ($pos == 6) { $translation["mainWindspeed"] = substr($wind_raw, 3, 3); $translation["windclear"] = $translation["windclear"] . " mit {$translation["mainWindspeed"]}"; } $translation["gustsUpTo"] = strtoupper(substr($wind_raw, $pos + 1, 3)); if (substr($translation["gustsUpTo"], 2, 1) == "K" || substr($translation["gustsUpTo"], 2, 1) == "M") { $translation["gustsUpTo"] = substr($translation["gustsUpTo"], 0, 2); $translation["mainWindspeedUnit"] = unitUnifier(trim(substr($wind_raw, $pos + 3, 3))); } else { $translation["gustsUpTo"] = substr($translation["gustsUpTo"], 0, 3); $translation["mainWindspeedUnit"] = unitUnifier(trim(substr($wind_raw, $pos + 4, 3))); } $translation["windclear"] = $translation["windclear"] . " {$translation["mainWindspeedUnit"]}, in Spitzen mit {$translation["gustsUpTo"]} {$translation["mainWindspeedUnit"]}"; }else { //wenn es keine Booen gibt, dann also Variante b oder c $translation["gusts"] = false; // wenn Wind zweistellig, also an dritter Stelle schon eine Einheit folgt if (strtoupper(substr($wind_raw, 5, 1)) == "K" || strtoupper(substr($wind_raw, 5, 1)) == "M") { $translation["mainWindspeed"] = substr($wind_raw, 3, 2); // die Einheit für den Wind wird dann hier ausgelesen $translation["mainWindspeedUnit"] = unitUnifier(trim(substr($wind_raw, 5, 3))); $translation["windclear"] = $translation["windclear"] . " mit {$translation["mainWindspeed"]} {$translation["mainWindspeedUnit"]}"; } else { $translation["mainWindspeed"] = substr($wind_raw, 3, 3); // die Einheit für den Wind wird dann hier ausgelesen $translation["mainWindspeedUnit"] = unitUnifier(trim(substr($wind_raw, 6, 3))); $translation["windclear"] = $translation["windclear"] . " mit {$translation["mainWindspeed"]} {$translation["mainWindspeedUnit"]}"; } } } var_dump($resRaw); var_dump($translation); } } else { myerror("ICAO-Code nicht valide"); } } function unitUnifier($str_input) { if (strtoupper($str_input) == "KT") { $out = "kt"; } elseif (strtoupper($str_input) == "MPS") { $out = "m/s"; } elseif (strtoupper($str_input) == "KMH") { $out = "km/h"; } return $out; }; function myerror($msg) { header("HTTP/1.0 404 Not Found"); echo $msg; die(); } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9flc4
function name:  (null)
number of ops:  5
compiled vars:  !0 = $Input_ICAO_Airport
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E >   ASSIGN                                                   !0, 'KHII'
    6     1        INIT_FCALL_BY_NAME                                       'getMetar'
          2        SEND_VAR_EX                                              !0
          3        DO_FCALL                                      0          
  195     4      > RETURN                                                   1

Function getmetar:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 404
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 40
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 403
Branch analysis from position: 403
1 jumps found. (Code = 42) Position 1 = 407
Branch analysis from position: 407
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 40
2 jumps found. (Code = 47) Position 1 = 93, Position 2 = 99
Branch analysis from position: 93
2 jumps found. (Code = 43) Position 1 = 100, Position 2 = 108
Branch analysis from position: 100
1 jumps found. (Code = 42) Position 1 = 111
Branch analysis from position: 111
2 jumps found. (Code = 43) Position 1 = 124, Position 2 = 148
Branch analysis from position: 124
1 jumps found. (Code = 42) Position 1 = 179
Branch analysis from position: 179
2 jumps found. (Code = 43) Position 1 = 181, Position 2 = 397
Branch analysis from position: 181
2 jumps found. (Code = 43) Position 1 = 191, Position 2 = 313
Branch analysis from position: 191
2 jumps found. (Code = 43) Position 1 = 195, Position 2 = 210
Branch analysis from position: 195
1 jumps found. (Code = 42) Position 1 = 226
Branch analysis from position: 226
2 jumps found. (Code = 47) Position 1 = 245, Position 2 = 253
Branch analysis from position: 245
2 jumps found. (Code = 43) Position 1 = 254, Position 2 = 277
Branch analysis from position: 254
1 jumps found. (Code = 42) Position 1 = 299
Branch analysis from position: 299
1 jumps found. (Code = 42) Position 1 = 397
Branch analysis from position: 397
1 jumps found. (Code = 42) Position 1 = 407
Branch analysis from position: 407
Branch analysis from position: 277
1 jumps found. (Code = 42) Position 1 = 397
Branch analysis from position: 397
Branch analysis from position: 253
Branch analysis from position: 210
2 jumps found. (Code = 43) Position 1 = 212, Position 2 = 226
Branch analysis from position: 212
2 jumps found. (Code = 47) Position 1 = 245, Position 2 = 253
Branch analysis from position: 245
Branch analysis from position: 253
Branch analysis from position: 226
Branch analysis from position: 313
2 jumps found. (Code = 47) Position 1 = 325, Position 2 = 335
Branch analysis from position: 325
2 jumps found. (Code = 43) Position 1 = 336, Position 2 = 367
Branch analysis from position: 336
1 jumps found. (Code = 42) Position 1 = 397
Branch analysis from position: 397
Branch analysis from position: 367
1 jumps found. (Code = 42) Position 1 = 407
Branch analysis from position: 407
Branch analysis from position: 335
Branch analysis from position: 397
Branch analysis from position: 148
2 jumps found. (Code = 43) Position 1 = 158, Position 2 = 163
Branch analysis from position: 158
1 jumps found. (Code = 42) Position 1 = 179
Branch analysis from position: 179
Branch analysis from position: 163
2 jumps found. (Code = 43) Position 1 = 181, Position 2 = 397
Branch analysis from position: 181
Branch analysis from position: 397
Branch analysis from position: 108
2 jumps found. (Code = 43) Position 1 = 124, Position 2 = 148
Branch analysis from position: 124
Branch analysis from position: 148
Branch analysis from position: 99
Branch analysis from position: 404
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9flc4
function name:  getMetar
number of ops:  408
compiled vars:  !0 = $ICAO_Code, !1 = $opt, !2 = $filename, !3 = $handle, !4 = $contents, !5 = $resRaw, !6 = $translation, !7 = $i, !8 = $wind_raw, !9 = $tmpwdirection, !10 = $pos
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    8     0  E >   RECV                                             !0      
   13     1        ASSIGN                                                   !1, <array>
   18     2        INIT_FCALL                                               'filter_var'
          3        SEND_VAR                                                 !0
          4        SEND_VAL                                                 272
          5        SEND_VAR                                                 !1
          6        DO_ICALL                                         $12     
          7      > JMPZ                                                     $12, ->404
   20     8    >   INIT_FCALL                                               'strtoupper'
          9        SEND_VAR                                                 !0
         10        DO_ICALL                                         $13     
         11        ASSIGN                                                   !0, $13
   21    12        ROPE_INIT                                     3  ~16     'ftp%3A%2F%2Ftgftp.nws.noaa.gov%2Fdata%2Fobservations%2Fmetar%2Fstations%2F'
         13        ROPE_ADD                                      1  ~16     ~16, !0
         14        ROPE_END                                      2  ~15     ~16, '.TXT'
         15        ASSIGN                                                   !2, ~15
   22    16        INIT_FCALL                                               'fopen'
         17        SEND_VAR                                                 !2
         18        SEND_VAL                                                 'r'
         19        DO_ICALL                                         $19     
         20        ASSIGN                                                   !3, $19
   23    21        INIT_FCALL                                               'fread'
         22        SEND_VAR                                                 !3
         23        INIT_FCALL                                               'filesize'
         24        SEND_VAR                                                 !2
         25        DO_ICALL                                         $21     
         26        SEND_VAR                                                 $21
         27        DO_ICALL                                         $22     
         28        ASSIGN                                                   !4, $22
   24    29        INIT_FCALL                                               'fclose'
         30        SEND_VAR                                                 !3
         31        DO_ICALL                                                 
   25    32        ECHO                                                     !4
   26    33        STRLEN                                           ~25     !4
         34        IS_SMALLER                                               ~25, 5
         35      > JMPZ                                                     ~26, ->40
   28    36    >   INIT_FCALL_BY_NAME                                       'myerror'
         37        SEND_VAL_EX                                              'Erhaltenes+Metar+nicht+valide%21'
         38        DO_FCALL                                      0          
         39      > JMP                                                      ->403
   32    40    >   INIT_FCALL                                               'preg_split'
         41        SEND_VAL                                                 '%2F%5Cs%2B%2F'
         42        SEND_VAR                                                 !4
         43        DO_ICALL                                         $28     
         44        ASSIGN                                                   !5, $28
   33    45        INIT_FCALL                                               'array_pop'
         46        SEND_REF                                                 !5
         47        DO_ICALL                                                 
   34    48        ASSIGN                                                   !6, <array>
   35    49        FETCH_DIM_R                                      ~33     !5, 2
         50        ASSIGN_DIM                                               !6, 'airport'
         51        OP_DATA                                                  ~33
   36    52        INIT_FCALL                                               'substr'
         53        FETCH_DIM_R                                      ~35     !5, 0
         54        SEND_VAL                                                 ~35
         55        SEND_VAL                                                 5
         56        SEND_VAL                                                 2
         57        DO_ICALL                                         $36     
         58        ASSIGN_DIM                                               !6, 'month'
         59        OP_DATA                                                  $36
   37    60        INIT_FCALL                                               'substr'
         61        FETCH_DIM_R                                      ~38     !5, 0
         62        SEND_VAL                                                 ~38
         63        SEND_VAL                                                 8
         64        SEND_VAL                                                 2
         65        DO_ICALL                                         $39     
         66        ASSIGN_DIM                                               !6, 'day'
         67        OP_DATA                                                  $39
   38    68        INIT_FCALL                                               'substr'
         69        FETCH_DIM_R                                      ~41     !5, 0
         70        SEND_VAL                                                 ~41
         71        SEND_VAL                                                 0
         72        SEND_VAL                                                 4
         73        DO_ICALL                                         $42     
         74        ASSIGN_DIM                                               !6, 'year'
         75        OP_DATA                                                  $42
   39    76        INIT_FCALL                                               'strtoupper'
         77        INIT_FCALL                                               'substr'
         78        FETCH_DIM_R                                      ~44     !5, 3
         79        SEND_VAL                                                 ~44
         80        SEND_VAL                                                 6
         81        SEND_VAL                                                 1
         82        DO_ICALL                                         $45     
         83        SEND_VAR                                                 $45
         84        DO_ICALL                                         $46     
         85        ASSIGN_DIM                                               !6, 'timezone'
         86        OP_DATA                                                  $46
   44    87        INIT_FCALL                                               'strtoupper'
         88        FETCH_DIM_R                                      ~47     !5, 4
         89        SEND_VAL                                                 ~47
         90        DO_ICALL                                         $48     
         91        IS_EQUAL                                         ~49     $48, 'COR'
         92      > JMPNZ_EX                                         ~49     ~49, ->99
         93    >   INIT_FCALL                                               'strtoupper'
         94        FETCH_DIM_R                                      ~50     !5, 4
         95        SEND_VAL                                                 ~50
         96        DO_ICALL                                         $51     
         97        IS_EQUAL                                         ~52     $51, 'AUTO'
         98        BOOL                                             ~49     ~52
         99    > > JMPZ                                                     ~49, ->108
   46   100    >   INIT_FCALL                                               'strtoupper'
        101        FETCH_DIM_R                                      ~54     !5, 4
        102        SEND_VAL                                                 ~54
        103        DO_ICALL                                         $55     
        104        ASSIGN_DIM                                               !6, 'correctionMode'
        105        OP_DATA                                                  $55
   47   106        ASSIGN                                                   !7, 5
        107      > JMP                                                      ->111
   51   108    >   ASSIGN_DIM                                               !6, 'correctionMode'
        109        OP_DATA                                                  'none'
   52   110        ASSIGN                                                   !7, 4
   62   111    >   FETCH_DIM_R                                      ~59     !5, !7
        112        ASSIGN                                                   !8, ~59
   63   113        PRE_INC                                                  !7
   68   114        INIT_FCALL                                               'strtoupper'
        115        INIT_FCALL                                               'substr'
        116        SEND_VAR                                                 !8
        117        SEND_VAL                                                 0
        118        SEND_VAL                                                 5
        119        DO_ICALL                                         $62     
        120        SEND_VAR                                                 $62
        121        DO_ICALL                                         $63     
        122        IS_EQUAL                                                 $63, '00000'
        123      > JMPZ                                                     ~64, ->148
   70   124    >   ASSIGN_DIM                                               !6, 'windclear'
        125        OP_DATA                                                  'windstill'
   71   126        ASSIGN_DIM                                               !6, 'boolWind'
        127        OP_DATA                                                  <false>
   72   128        ASSIGN_DIM                                               !6, 'windfrom_a'
        129        OP_DATA                                                  0
   73   130        ASSIGN_DIM                                               !6, 'windfrom_b'
        131        OP_DATA                                                  0
   74   132        ASSIGN_DIM                                               !6, 'mainWindspeed'
        133        OP_DATA                                                  0
   78   134        INIT_FCALL_BY_NAME                                       'unitUnifier'
        135        INIT_FCALL                                               'trim'
        136        INIT_FCALL                                               'substr'
        137        SEND_VAR                                                 !8
        138        SEND_VAL                                                 5
        139        SEND_VAL                                                 3
        140        DO_ICALL                                         $71     
        141        SEND_VAR                                                 $71
        142        DO_ICALL                                         $72     
        143        SEND_VAR_NO_REF_EX                                       $72
        144        DO_FCALL                                      0  $73     
        145        ASSIGN_DIM                                               !6, 'mainWindspeedUnit'
        146        OP_DATA                                                  $73
        147      > JMP                                                      ->179
   83   148    >   INIT_FCALL                                               'strtoupper'
        149        INIT_FCALL                                               'substr'
        150        SEND_VAR                                                 !8
        151        SEND_VAL                                                 0
        152        SEND_VAL                                                 3
        153        DO_ICALL                                         $74     
        154        SEND_VAR                                                 $74
        155        DO_ICALL                                         $75     
        156        IS_EQUAL                                                 $75, 'VRB'
        157      > JMPZ                                                     ~76, ->163
   85   158    >   ASSIGN_DIM                                               !6, 'windclear'
        159        OP_DATA                                                  'Windrichtung+variabel'
   86   160        ASSIGN_DIM                                               !6, 'boolWind'
        161        OP_DATA                                                  <true>
        162      > JMP                                                      ->179
   93   163    >   INIT_FCALL                                               'strtoupper'
        164        INIT_FCALL                                               'substr'
        165        SEND_VAR                                                 !8
        166        SEND_VAL                                                 0
        167        SEND_VAL                                                 3
        168        DO_ICALL                                         $79     
        169        SEND_VAR                                                 $79
        170        DO_ICALL                                         $80     
        171        ASSIGN                                                   !9, $80
   94   172        ROPE_INIT                                     3  ~84     'Wind+aus+'
        173        ROPE_ADD                                      1  ~84     ~84, !9
        174        ROPE_END                                      2  ~83     ~84, '+Grad'
        175        ASSIGN_DIM                                               !6, 'windclear'
        176        OP_DATA                                                  ~83
   95   177        ASSIGN_DIM                                               !6, 'boolWind'
        178        OP_DATA                                                  <true>
  100   179    >   FETCH_DIM_R                                      ~87     !6, 'boolWind'
        180      > JMPZ                                                     ~87, ->397
  105   181    >   INIT_FCALL                                               'strpos'
        182        INIT_FCALL                                               'strtoupper'
        183        SEND_VAR                                                 !8
        184        DO_ICALL                                         $88     
        185        SEND_VAR                                                 $88
        186        SEND_VAL                                                 'G'
        187        DO_ICALL                                         $89     
        188        ASSIGN                                                   !10, $89
  106   189        TYPE_CHECK                                  1018          !10
        190      > JMPZ                                                     ~91, ->313
  108   191    >   ASSIGN_DIM                                               !6, 'gusts'
        192        OP_DATA                                                  <true>
  109   193        IS_EQUAL                                                 !10, 5
        194      > JMPZ                                                     ~93, ->210
  111   195    >   INIT_FCALL                                               'substr'
        196        SEND_VAR                                                 !8
        197        SEND_VAL                                                 3
        198        SEND_VAL                                                 2
        199        DO_ICALL                                         $95     
        200        ASSIGN_DIM                                               !6, 'mainWindspeed'
        201        OP_DATA                                                  $95
  112   202        FETCH_DIM_R                                      ~97     !6, 'windclear'
        203        NOP                                                      
        204        FETCH_DIM_R                                      ~98     !6, 'mainWindspeed'
        205        FAST_CONCAT                                      ~99     '+mit+', ~98
        206        CONCAT                                           ~100    ~97, ~99
        207        ASSIGN_DIM                                               !6, 'windclear'
        208        OP_DATA                                                  ~100
        209      > JMP                                                      ->226
  114   210    >   IS_EQUAL                                                 !10, 6
        211      > JMPZ                                                     ~101, ->226
  116   212    >   INIT_FCALL                                               'substr'
        213        SEND_VAR                                                 !8
        214        SEND_VAL                                                 3
        215        SEND_VAL                                                 3
        216        DO_ICALL                                         $103    
        217        ASSIGN_DIM                                               !6, 'mainWindspeed'
        218        OP_DATA                                                  $103
  117   219        FETCH_DIM_R                                      ~105    !6, 'windclear'
        220        NOP                                                      
        221        FETCH_DIM_R                                      ~106    !6, 'mainWindspeed'
        222        FAST_CONCAT                                      ~107    '+mit+', ~106
        223        CONCAT                                           ~108    ~105, ~107
        224        ASSIGN_DIM                                               !6, 'windclear'
        225        OP_DATA                                                  ~108
  120   226    >   INIT_FCALL                                               'strtoupper'
        227        INIT_FCALL                                               'substr'
        228        SEND_VAR                                                 !8
        229        ADD                                              ~110    !10, 1
        230        SEND_VAL                                                 ~110
        231        SEND_VAL                                                 3
        232        DO_ICALL                                         $111    
        233        SEND_VAR                                                 $111
        234        DO_ICALL                                         $112    
        235        ASSIGN_DIM                                               !6, 'gustsUpTo'
        236        OP_DATA                                                  $112
  121   237        INIT_FCALL                                               'substr'
        238        FETCH_DIM_R                                      ~113    !6, 'gustsUpTo'
        239        SEND_VAL                                                 ~113
        240        SEND_VAL                                                 2
        241        SEND_VAL                                                 1
        242        DO_ICALL                                         $114    
        243        IS_EQUAL                                         ~115    $114, 'K'
        244      > JMPNZ_EX                                         ~115    ~115, ->253
        245    >   INIT_FCALL                                               'substr'
        246        FETCH_DIM_R                                      ~116    !6, 'gustsUpTo'
        247        SEND_VAL                                                 ~116
        248        SEND_VAL                                                 2
        249        SEND_VAL                                                 1
        250        DO_ICALL                                         $117    
        251        IS_EQUAL                                         ~118    $117, 'M'
        252        BOOL                                             ~115    ~118
        253    > > JMPZ                                                     ~115, ->277
  123   254    >   INIT_FCALL                                               'substr'
        255        FETCH_DIM_R                                      ~120    !6, 'gustsUpTo'
        256        SEND_VAL                                                 ~120
        257        SEND_VAL                                                 0
        258        SEND_VAL                                                 2
        259        DO_ICALL                                         $121    
        260        ASSIGN_DIM                                               !6, 'gustsUpTo'
        261        OP_DATA                                                  $121
  124   262        INIT_FCALL_BY_NAME                                       'unitUnifier'
        263        INIT_FCALL                                               'trim'
        264        INIT_FCALL                                               'substr'
        265        SEND_VAR                                                 !8
        266        ADD                                              ~123    !10, 3
        267        SEND_VAL                                                 ~123
        268        SEND_VAL                                                 3
        269        DO_ICALL                                         $124    
        270        SEND_VAR                                                 $124
        271        DO_ICALL                                         $125    
        272        SEND_VAR_NO_REF_EX                                       $125
        273        DO_FCALL                                      0  $126    
        274        ASSIGN_DIM                                               !6, 'mainWindspeedUnit'
        275        OP_DATA                                                  $126
        276      > JMP                                                      ->299
  128   277    >   INIT_FCALL                                               'substr'
        278        FETCH_DIM_R                                      ~128    !6, 'gustsUpTo'
        279        SEND_VAL                                                 ~128
        280        SEND_VAL                                                 0
        281        SEND_VAL                                                 3
        282        DO_ICALL                                         $129    
        283        ASSIGN_DIM                                               !6, 'gustsUpTo'
        284        OP_DATA                                                  $129
  129   285        INIT_FCALL_BY_NAME                                       'unitUnifier'
        286        INIT_FCALL                                               'trim'
        287        INIT_FCALL                                               'substr'
        288        SEND_VAR                                                 !8
        289        ADD                                              ~131    !10, 4
        290        SEND_VAL                                                 ~131
        291        SEND_VAL                                                 3
        292        DO_ICALL                                         $132    
        293        SEND_VAR                                                 $132
        294        DO_ICALL                                         $133    
        295        SEND_VAR_NO_REF_EX                                       $133
        296        DO_FCALL                                      0  $134    
        297        ASSIGN_DIM                                               !6, 'mainWindspeedUnit'
        298        OP_DATA                                                  $134
  132   299    >   FETCH_DIM_R                                      ~136    !6, 'windclear'
        300        ROPE_INIT                                     6  ~141    '+'
        301        FETCH_DIM_R                                      ~137    !6, 'mainWindspeedUnit'
        302        ROPE_ADD                                      1  ~141    ~141, ~137
        303        ROPE_ADD                                      2  ~141    ~141, '%2C%0A%09%09%09+in+Spitzen+mit+'
  133   304        FETCH_DIM_R                                      ~138    !6, 'gustsUpTo'
        305        ROPE_ADD                                      3  ~141    ~141, ~138
        306        ROPE_ADD                                      4  ~141    ~141, '+'
        307        FETCH_DIM_R                                      ~139    !6, 'mainWindspeedUnit'
        308        ROPE_END                                      5  ~140    ~141, ~139
        309        CONCAT                                           ~144    ~136, ~140
  132   310        ASSIGN_DIM                                               !6, 'windclear'
  133   311        OP_DATA                                                  ~144
        312      > JMP                                                      ->397
  136   313    >   ASSIGN_DIM                                               !6, 'gusts'
        314        OP_DATA                                                  <false>
  140   315        INIT_FCALL                                               'strtoupper'
        316        INIT_FCALL                                               'substr'
        317        SEND_VAR                                                 !8
        318        SEND_VAL                                                 5
        319        SEND_VAL                                                 1
        320        DO_ICALL                                         $146    
        321        SEND_VAR                                                 $146
        322        DO_ICALL                                         $147    
        323        IS_EQUAL                                         ~148    $147, 'K'
        324      > JMPNZ_EX                                         ~148    ~148, ->335
        325    >   INIT_FCALL                                               'strtoupper'
        326        INIT_FCALL                                               'substr'
        327        SEND_VAR                                                 !8
        328        SEND_VAL                                                 5
        329        SEND_VAL                                                 1
        330        DO_ICALL                                         $149    
        331        SEND_VAR                                                 $149
        332        DO_ICALL                                         $150    
        333        IS_EQUAL                                         ~151    $150, 'M'
        334        BOOL                                             ~148    ~151
        335    > > JMPZ                                                     ~148, ->367
  142   336    >   INIT_FCALL                                               'substr'
        337        SEND_VAR                                                 !8
    

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.82 ms | 1433 KiB | 35 Q