3v4l.org

run code in 300+ PHP versions simultaneously
<?php $url = '/index.php?color=blue&size=xl'; $remove = array( 'color'); $parts = parse_url( $url); parse_str( $parts['query'], $params); foreach( $params as $k => $v) { if( in_array( $k, $remove)) { unset( $params[$k]); } } $url = $parts['path'] . (count( $params) > 0) ? '?' . http_build_query( $params) : ''; echo $url;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 12, Position 2 = 21
Branch analysis from position: 12
2 jumps found. (Code = 78) Position 1 = 13, Position 2 = 21
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 20
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 20
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 33
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
filename:       /in/BIWcX
function name:  (null)
number of ops:  37
compiled vars:  !0 = $url, !1 = $remove, !2 = $parts, !3 = $params, !4 = $v, !5 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%2Findex.php%3Fcolor%3Dblue%26size%3Dxl'
    3     1        ASSIGN                                                   !1, <array>
    5     2        INIT_FCALL                                               'parse_url'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $8      
          5        ASSIGN                                                   !2, $8
    6     6        INIT_FCALL                                               'parse_str'
          7        FETCH_DIM_R                                      ~10     !2, 'query'
          8        SEND_VAL                                                 ~10
          9        SEND_REF                                                 !3
         10        DO_ICALL                                                 
    8    11      > FE_RESET_R                                       $12     !3, ->21
         12    > > FE_FETCH_R                                       ~13     $12, !4, ->21
         13    >   ASSIGN                                                   !5, ~13
    9    14        INIT_FCALL                                               'in_array'
         15        SEND_VAR                                                 !5
         16        SEND_VAR                                                 !1
         17        DO_ICALL                                         $15     
         18      > JMPZ                                                     $15, ->20
   10    19    >   UNSET_DIM                                                !3, !5
    8    20    > > JMP                                                      ->12
         21    >   FE_FREE                                                  $12
   14    22        FETCH_DIM_R                                      ~16     !2, 'path'
         23        COUNT                                            ~17     !3
         24        IS_SMALLER                                       ~18     0, ~17
         25        CONCAT                                           ~19     ~16, ~18
         26      > JMPZ                                                     ~19, ->33
         27    >   INIT_FCALL                                               'http_build_query'
         28        SEND_VAR                                                 !3
         29        DO_ICALL                                         $20     
         30        CONCAT                                           ~21     '%3F', $20
         31        QM_ASSIGN                                        ~22     ~21
         32      > JMP                                                      ->34
         33    >   QM_ASSIGN                                        ~22     ''
         34    >   ASSIGN                                                   !0, ~22
   15    35        ECHO                                                     !0
         36      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.21 ms | 1392 KiB | 21 Q