3v4l.org

run code in 300+ PHP versions simultaneously
<?php $uri = 'https://www.algo.com/algo/algomas'; $parsed_uri = parse_url($uri); $rebuilt_host_part = ($parsed_uri['user'] ? $parsed_uri['user'] : '') . ($parsed_uri['pass'] ? ':'.$parsed_uri['pass'] : '') . ($parsed_uri['user'] ? '@' : '') . $parsed_uri['host'] . ($parsed_uri['port'] ? ':'.$parsed_uri['port'] : ''); $random = '_='.random_string('alnum', 3); $parsed_uri['fragment'] .= $parsed_uri['fragment'] ? '&'.$random : $random; $rebuilt_uri = sprintf('%s://%s%s%s', $parsed_uri['scheme'], $rebuilt_host_part, $parsed_uri['path'], $parsed_uri['query'] ? '?'.$parsed_uri['query'] : '', $parsed_uri['fragment'] ? '#'.$parsed_uri['fragment'] : ''); $uri = $rebuilt_uri; echo $uri;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 33
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 47
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 63
Branch analysis from position: 59
1 jumps found. (Code = 42) Position 1 = 64
Branch analysis from position: 64
2 jumps found. (Code = 43) Position 1 = 67, Position 2 = 71
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 71
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 63
2 jumps found. (Code = 43) Position 1 = 67, Position 2 = 71
Branch analysis from position: 67
Branch analysis from position: 71
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 63
Branch analysis from position: 59
Branch analysis from position: 63
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 47
Branch analysis from position: 44
Branch analysis from position: 47
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 33
Branch analysis from position: 29
Branch analysis from position: 33
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
Branch analysis from position: 23
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
Branch analysis from position: 17
filename:       /in/nes2n
function name:  (null)
number of ops:  78
compiled vars:  !0 = $uri, !1 = $parsed_uri, !2 = $rebuilt_host_part, !3 = $random, !4 = $rebuilt_uri
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'https%3A%2F%2Fwww.algo.com%2Falgo%2Falgomas'
    5     1        INIT_FCALL                                               'parse_url'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $6      
          4        ASSIGN                                                   !1, $6
    8     5        FETCH_DIM_R                                      ~8      !1, 'user'
          6      > JMPZ                                                     ~8, ->10
          7    >   FETCH_DIM_R                                      ~9      !1, 'user'
          8        QM_ASSIGN                                        ~10     ~9
          9      > JMP                                                      ->11
         10    >   QM_ASSIGN                                        ~10     ''
    9    11    >   FETCH_DIM_R                                      ~11     !1, 'pass'
         12      > JMPZ                                                     ~11, ->17
         13    >   FETCH_DIM_R                                      ~12     !1, 'pass'
         14        CONCAT                                           ~13     '%3A', ~12
         15        QM_ASSIGN                                        ~14     ~13
         16      > JMP                                                      ->18
         17    >   QM_ASSIGN                                        ~14     ''
         18    >   CONCAT                                           ~15     ~10, ~14
   10    19        FETCH_DIM_R                                      ~16     !1, 'user'
         20      > JMPZ                                                     ~16, ->23
         21    >   QM_ASSIGN                                        ~17     '%40'
         22      > JMP                                                      ->24
         23    >   QM_ASSIGN                                        ~17     ''
         24    >   CONCAT                                           ~18     ~15, ~17
   11    25        FETCH_DIM_R                                      ~19     !1, 'host'
         26        CONCAT                                           ~20     ~18, ~19
   12    27        FETCH_DIM_R                                      ~21     !1, 'port'
         28      > JMPZ                                                     ~21, ->33
         29    >   FETCH_DIM_R                                      ~22     !1, 'port'
         30        CONCAT                                           ~23     '%3A', ~22
         31        QM_ASSIGN                                        ~24     ~23
         32      > JMP                                                      ->34
         33    >   QM_ASSIGN                                        ~24     ''
         34    >   CONCAT                                           ~25     ~20, ~24
    7    35        ASSIGN                                                   !2, ~25
   14    36        INIT_FCALL_BY_NAME                                       'random_string'
         37        SEND_VAL_EX                                              'alnum'
         38        SEND_VAL_EX                                              3
         39        DO_FCALL                                      0  $27     
         40        CONCAT                                           ~28     '_%3D', $27
         41        ASSIGN                                                   !3, ~28
   16    42        FETCH_DIM_R                                      ~31     !1, 'fragment'
         43      > JMPZ                                                     ~31, ->47
         44    >   CONCAT                                           ~32     '%26', !3
         45        QM_ASSIGN                                        ~33     ~32
         46      > JMP                                                      ->48
         47    >   QM_ASSIGN                                        ~33     !3
         48    >   ASSIGN_DIM_OP                .=               8          !1, 'fragment'
         49        OP_DATA                                                  ~33
   18    50        INIT_FCALL                                               'sprintf'
         51        SEND_VAL                                                 '%25s%3A%2F%2F%25s%25s%25s'
   19    52        FETCH_DIM_R                                      ~34     !1, 'scheme'
         53        SEND_VAL                                                 ~34
   20    54        SEND_VAR                                                 !2
   21    55        FETCH_DIM_R                                      ~35     !1, 'path'
         56        SEND_VAL                                                 ~35
   22    57        FETCH_DIM_R                                      ~36     !1, 'query'
         58      > JMPZ                                                     ~36, ->63
         59    >   FETCH_DIM_R                                      ~37     !1, 'query'
         60        CONCAT                                           ~38     '%3F', ~37
         61        QM_ASSIGN                                        ~39     ~38
         62      > JMP                                                      ->64
         63    >   QM_ASSIGN                                        ~39     ''
         64    >   SEND_VAL                                                 ~39
   23    65        FETCH_DIM_R                                      ~40     !1, 'fragment'
         66      > JMPZ                                                     ~40, ->71
         67    >   FETCH_DIM_R                                      ~41     !1, 'fragment'
         68        CONCAT                                           ~42     '%23', ~41
         69        QM_ASSIGN                                        ~43     ~42
         70      > JMP                                                      ->72
         71    >   QM_ASSIGN                                        ~43     ''
         72    >   SEND_VAL                                                 ~43
         73        DO_ICALL                                         $44     
   18    74        ASSIGN                                                   !4, $44
   25    75        ASSIGN                                                   !0, !4
   26    76        ECHO                                                     !0
         77      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
167.03 ms | 1404 KiB | 17 Q