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")); $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/l2Xj8
function name:  (null)
number of ops:  87
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
         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        SEND_VAL                                                 ~25
         49        DO_ICALL                                         $26     
         50        ASSIGN_DIM                                               !0, 'OS'
         51        OP_DATA                                                  $26
    6    52        INIT_FCALL                                               'substr'
         53        FETCH_R                      global              ~28     '_SERVER'
         54        FETCH_DIM_R                                      ~29     ~28, 'HTTP_USER_AGENT'
         55        SEND_VAL                                                 ~29
         56        INIT_FCALL                                               'strpos'
         57        FETCH_R                      global              ~30     '_SERVER'
         58        FETCH_DIM_R                                      ~31     ~30, 'HTTP_USER_AGENT'
         59        SEND_VAL                                                 ~31
         60        SEND_VAL                                                 'on'
         61        DO_ICALL                                         $32     
         62        ADD                                              ~33     $32, 3
         63        SEND_VAL                                                 ~33
         64        DO_ICALL                                         $34     
         65        ASSIGN_DIM                                               !0, 'Device'
         66        OP_DATA                                                  $34
    7    67        INIT_FCALL                                               'substr'
         68        FETCH_R                      global              ~36     '_SERVER'
         69        FETCH_DIM_R                                      ~37     ~36, 'HTTP_USER_AGENT'
         70        SEND_VAL                                                 ~37
         71        INIT_FCALL                                               'strpos'
         72        FETCH_R                      global              ~38     '_SERVER'
         73        FETCH_DIM_R                                      ~39     ~38, 'HTTP_USER_AGENT'
         74        SEND_VAL                                                 ~39
         75        SEND_VAL                                                 'v'
         76        DO_ICALL                                         $40     
         77        ADD                                              ~41     $40, 1
         78        SEND_VAL                                                 ~41
         79        SEND_VAL                                                 6
         80        DO_ICALL                                         $42     
         81        ASSIGN_DIM                                               !0, 'Version'
         82        OP_DATA                                                  $42
    8    83        INIT_FCALL                                               'print_r'
         84        SEND_VAR                                                 !0
         85        DO_ICALL                                                 
         86      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
147.11 ms | 1400 KiB | 19 Q