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, strlen($_SERVER["HTTP_USER_AGENT"]) - (strlen($_SERVER["HTTP_USER_AGENT"]) - strpos($_SERVER["HTTP_USER_AGENT"], "on"))-1); $Client["Device"] = substr($_SERVER["HTTP_USER_AGENT"], strpos($_SERVER["HTTP_USER_AGENT"], "on") + 3); 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/RdDO2
function name:  (null)
number of ops:  73
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
         35        FETCH_R                      global              ~19     '_SERVER'
         36        FETCH_DIM_R                                      ~20     ~19, 'HTTP_USER_AGENT'
         37        STRLEN                                           ~21     ~20
         38        FETCH_R                      global              ~22     '_SERVER'
         39        FETCH_DIM_R                                      ~23     ~22, 'HTTP_USER_AGENT'
         40        STRLEN                                           ~24     ~23
         41        INIT_FCALL                                               'strpos'
         42        FETCH_R                      global              ~25     '_SERVER'
         43        FETCH_DIM_R                                      ~26     ~25, 'HTTP_USER_AGENT'
         44        SEND_VAL                                                 ~26
         45        SEND_VAL                                                 'on'
         46        DO_ICALL                                         $27     
         47        SUB                                              ~28     ~24, $27
         48        SUB                                              ~29     ~21, ~28
         49        SUB                                              ~30     ~29, 1
         50        SEND_VAL                                                 ~30
         51        DO_ICALL                                         $31     
         52        ASSIGN_DIM                                               !0, 'OS'
         53        OP_DATA                                                  $31
    6    54        INIT_FCALL                                               'substr'
         55        FETCH_R                      global              ~33     '_SERVER'
         56        FETCH_DIM_R                                      ~34     ~33, 'HTTP_USER_AGENT'
         57        SEND_VAL                                                 ~34
         58        INIT_FCALL                                               'strpos'
         59        FETCH_R                      global              ~35     '_SERVER'
         60        FETCH_DIM_R                                      ~36     ~35, 'HTTP_USER_AGENT'
         61        SEND_VAL                                                 ~36
         62        SEND_VAL                                                 'on'
         63        DO_ICALL                                         $37     
         64        ADD                                              ~38     $37, 3
         65        SEND_VAL                                                 ~38
         66        DO_ICALL                                         $39     
         67        ASSIGN_DIM                                               !0, 'Device'
         68        OP_DATA                                                  $39
    7    69        INIT_FCALL                                               'print_r'
         70        SEND_VAR                                                 !0
         71        DO_ICALL                                                 
         72      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.96 ms | 1400 KiB | 19 Q