3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php for($i = 0; $i <= 0xC4; ++$i){ for($k = 0; $k <= 0xC4; ++$k){ $z = "%".sprintf("%02x", $i)."%".sprintf("%02x", $k); $x = mb_strtoupper(urldecode($z)); //echo $z." => ".$x."\n"; if(preg_match("/I/", $x)){ echo $z." => ".$x." - find\n"; } } }
based on 5h974
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 2
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 2
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 4
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 2
Branch analysis from position: 38
Branch analysis from position: 2
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 32
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 4
Branch analysis from position: 35
Branch analysis from position: 4
Branch analysis from position: 32
filename:       /in/oCeXf
function name:  (null)
number of ops:  39
compiled vars:  !0 = $i, !1 = $k, !2 = $z, !3 = $x
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   3     0  E >   ASSIGN                                                   !0, 0
         1      > JMP                                                      ->36
   4     2    >   ASSIGN                                                   !1, 0
         3      > JMP                                                      ->33
   5     4    >   INIT_FCALL                                               'sprintf'
         5        SEND_VAL                                                 '%2502x'
         6        SEND_VAR                                                 !0
         7        DO_ICALL                                         $6      
         8        CONCAT                                           ~7      '%25', $6
         9        CONCAT                                           ~8      ~7, '%25'
        10        INIT_FCALL                                               'sprintf'
        11        SEND_VAL                                                 '%2502x'
        12        SEND_VAR                                                 !1
        13        DO_ICALL                                         $9      
        14        CONCAT                                           ~10     ~8, $9
        15        ASSIGN                                                   !2, ~10
   6    16        INIT_FCALL                                               'mb_strtoupper'
        17        INIT_FCALL                                               'urldecode'
        18        SEND_VAR                                                 !2
        19        DO_ICALL                                         $12     
        20        SEND_VAR                                                 $12
        21        DO_ICALL                                         $13     
        22        ASSIGN                                                   !3, $13
   8    23        INIT_FCALL                                               'preg_match'
        24        SEND_VAL                                                 '%2FI%2F'
        25        SEND_VAR                                                 !3
        26        DO_ICALL                                         $15     
        27      > JMPZ                                                     $15, ->32
   9    28    >   CONCAT                                           ~16     !2, '+%3D%3E+'
        29        CONCAT                                           ~17     ~16, !3
        30        CONCAT                                           ~18     ~17, '+-+find%0A'
        31        ECHO                                                     ~18
   4    32    >   PRE_INC                                                  !1
        33    >   IS_SMALLER_OR_EQUAL                              ~20     !1, 196
        34      > JMPNZ                                                    ~20, ->4
   3    35    >   PRE_INC                                                  !0
        36    >   IS_SMALLER_OR_EQUAL                              ~22     !0, 196
        37      > JMPNZ                                                    ~22, ->2
  12    38    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 7.3.0