3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_SERVER["HTTP_USER_AGENT"] = "TeachMe-App v000003 Android 4.4.2 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")-7); $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/puhOT
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+Android+4.4.2+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        DO_ICALL                                         $24     
         47        SUB                                              ~25     $21, $24
         48        SUB                                              ~26     ~25, 7
         49        SEND_VAL                                                 ~26
         50        DO_ICALL                                         $27     
    5    51        ASSIGN_DIM                                               !0, 'OS'
    6    52        OP_DATA                                                  $27
    7    53        INIT_FCALL                                               'substr'
         54        FETCH_R                      global              ~29     '_SERVER'
         55        FETCH_DIM_R                                      ~30     ~29, 'HTTP_USER_AGENT'
         56        SEND_VAL                                                 ~30
         57        INIT_FCALL                                               'strpos'
         58        FETCH_R                      global              ~31     '_SERVER'
         59        FETCH_DIM_R                                      ~32     ~31, 'HTTP_USER_AGENT'
         60        SEND_VAL                                                 ~32
         61        SEND_VAL                                                 'on'
         62        DO_ICALL                                         $33     
         63        ADD                                              ~34     $33, 3
         64        SEND_VAL                                                 ~34
         65        DO_ICALL                                         $35     
         66        ASSIGN_DIM                                               !0, 'Device'
         67        OP_DATA                                                  $35
    8    68        INIT_FCALL                                               'substr'
         69        FETCH_R                      global              ~37     '_SERVER'
         70        FETCH_DIM_R                                      ~38     ~37, 'HTTP_USER_AGENT'
         71        SEND_VAL                                                 ~38
         72        INIT_FCALL                                               'strpos'
         73        FETCH_R                      global              ~39     '_SERVER'
         74        FETCH_DIM_R                                      ~40     ~39, 'HTTP_USER_AGENT'
         75        SEND_VAL                                                 ~40
         76        SEND_VAL                                                 'v'
         77        DO_ICALL                                         $41     
         78        ADD                                              ~42     $41, 1
         79        SEND_VAL                                                 ~42
         80        SEND_VAL                                                 6
         81        DO_ICALL                                         $43     
         82        ASSIGN_DIM                                               !0, 'Version'
         83        OP_DATA                                                  $43
    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:
155.25 ms | 1400 KiB | 19 Q