3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_SERVER["HTTP_USER_AGENT"] = "TeachMe-App v000003 iOS 7 on generic"; $Client = array(); $Client["Client"] = substr($_SERVER["HTTP_USER_AGENT"], 0, strpos($_SERVER["HTTP_USER_AGENT"], "v")-1) or die(); $Client["OS"] = substr($_SERVER["HTTP_USER_AGENT"], strpos($_SERVER["HTTP_USER_AGENT"], "v")+7, strpos($_SERVER["HTTP_USER_AGENT"], "on") - strpos($_SERVER["HTTP_USER_AGENT"], "v", 0)); $Client["Device"] = substr($_SERVER["HTTP_USER_AGENT"], strpos($_SERVER["HTTP_USER_AGENT"], "on") + 3); $Client["Version"] = substr($_SERVER["HTTP_USER_AGENT"], strpos($_SERVER["HTTP_USER_AGENT"], "v") + 1, 6); print_r($Client);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Vr84I
function name:  (null)
number of ops:  88
compiled vars:  !0 = $Client
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   FETCH_W                      global              $1      '_SERVER'
          1        ASSIGN_DIM                                               $1, 'HTTP_USER_AGENT'
          2        OP_DATA                                                  'TeachMe-App+v000003+iOS+7+on+generic'
    3     3        ASSIGN                                                   !0, <array>
    4     4        INIT_FCALL                                               'substr'
          5        FETCH_R                      global              ~5      '_SERVER'
          6        FETCH_DIM_R                                      ~6      ~5, 'HTTP_USER_AGENT'
          7        SEND_VAL                                                 ~6
          8        SEND_VAL                                                 0
          9        INIT_FCALL                                               'strpos'
         10        FETCH_R                      global              ~7      '_SERVER'
         11        FETCH_DIM_R                                      ~8      ~7, 'HTTP_USER_AGENT'
         12        SEND_VAL                                                 ~8
         13        SEND_VAL                                                 'v'
         14        DO_ICALL                                         $9      
         15        SUB                                              ~10     $9, 1
         16        SEND_VAL                                                 ~10
         17        DO_ICALL                                         $11     
         18        ASSIGN_DIM                                       ~4      !0, 'Client'
         19        OP_DATA                                                  $11
         20      > JMPNZ_EX                                         ~4      ~4, ->23
         21    > > EXIT                                                     
         22*       BOOL                                             ~4      <true>
    5    23    >   INIT_FCALL                                               'substr'
         24        FETCH_R                      global              ~13     '_SERVER'
         25        FETCH_DIM_R                                      ~14     ~13, 'HTTP_USER_AGENT'
         26        SEND_VAL                                                 ~14
         27        INIT_FCALL                                               'strpos'
         28        FETCH_R                      global              ~15     '_SERVER'
         29        FETCH_DIM_R                                      ~16     ~15, 'HTTP_USER_AGENT'
         30        SEND_VAL                                                 ~16
         31        SEND_VAL                                                 'v'
         32        DO_ICALL                                         $17     
         33        ADD                                              ~18     $17, 7
         34        SEND_VAL                                                 ~18
    6    35        INIT_FCALL                                               'strpos'
         36        FETCH_R                      global              ~19     '_SERVER'
         37        FETCH_DIM_R                                      ~20     ~19, 'HTTP_USER_AGENT'
         38        SEND_VAL                                                 ~20
         39        SEND_VAL                                                 'on'
         40        DO_ICALL                                         $21     
         41        INIT_FCALL                                               'strpos'
         42        FETCH_R                      global              ~22     '_SERVER'
         43        FETCH_DIM_R                                      ~23     ~22, 'HTTP_USER_AGENT'
         44        SEND_VAL                                                 ~23
         45        SEND_VAL                                                 'v'
         46        SEND_VAL                                                 0
         47        DO_ICALL                                         $24     
         48        SUB                                              ~25     $21, $24
         49        SEND_VAL                                                 ~25
         50        DO_ICALL                                         $26     
    5    51        ASSIGN_DIM                                               !0, 'OS'
    6    52        OP_DATA                                                  $26
    7    53        INIT_FCALL                                               'substr'
         54        FETCH_R                      global              ~28     '_SERVER'
         55        FETCH_DIM_R                                      ~29     ~28, 'HTTP_USER_AGENT'
         56        SEND_VAL                                                 ~29
         57        INIT_FCALL                                               'strpos'
         58        FETCH_R                      global              ~30     '_SERVER'
         59        FETCH_DIM_R                                      ~31     ~30, 'HTTP_USER_AGENT'
         60        SEND_VAL                                                 ~31
         61        SEND_VAL                                                 'on'
         62        DO_ICALL                                         $32     
         63        ADD                                              ~33     $32, 3
         64        SEND_VAL                                                 ~33
         65        DO_ICALL                                         $34     
         66        ASSIGN_DIM                                               !0, 'Device'
         67        OP_DATA                                                  $34
    8    68        INIT_FCALL                                               'substr'
         69        FETCH_R                      global              ~36     '_SERVER'
         70        FETCH_DIM_R                                      ~37     ~36, 'HTTP_USER_AGENT'
         71        SEND_VAL                                                 ~37
         72        INIT_FCALL                                               'strpos'
         73        FETCH_R                      global              ~38     '_SERVER'
         74        FETCH_DIM_R                                      ~39     ~38, 'HTTP_USER_AGENT'
         75        SEND_VAL                                                 ~39
         76        SEND_VAL                                                 'v'
         77        DO_ICALL                                         $40     
         78        ADD                                              ~41     $40, 1
         79        SEND_VAL                                                 ~41
         80        SEND_VAL                                                 6
         81        DO_ICALL                                         $42     
         82        ASSIGN_DIM                                               !0, 'Version'
         83        OP_DATA                                                  $42
    9    84        INIT_FCALL                                               'print_r'
         85        SEND_VAR                                                 !0
         86        DO_ICALL                                                 
         87      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.75 ms | 1404 KiB | 19 Q