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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.71 ms | 1392 KiB | 19 Q