3v4l.org

run code in 500+ PHP versions simultaneously
<?php $ascii = implode('', range("\x00", "\xFF")); $unicode = ''; for ($i=0;$i<500;$i++) { $unicode .= mb_chr($i, 'UTF-8'); } $mixed = $ascii . $unicode; $pattern = '/[\W_]/'; echo 'ASCII pattern wtih ASCII characters' . \PHP_EOL; var_dump(preg_replace($pattern, '', $ascii)); echo \PHP_EOL; echo 'ASCII pattern wtih unicode characters' . \PHP_EOL; var_dump(preg_replace($pattern, '', $unicode)); echo \PHP_EOL; echo 'ASCII pattern wtih mixed characters' . \PHP_EOL; var_dump(preg_replace($pattern, '', $mixed)); echo \PHP_EOL; echo 'Unicode pattern wtih ASCII characters' . \PHP_EOL; var_dump(preg_replace($pattern . 'u', '', $ascii)); echo \PHP_EOL; echo 'Unicode pattern wtih unicode characters' . \PHP_EOL; var_dump(preg_replace($pattern . 'u', '', $unicode)); echo \PHP_EOL; echo 'Unicode pattern wtih mixed characters' . \PHP_EOL; var_dump(preg_replace($pattern. 'u', '', $mixed)); echo \PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
2 jumps found. (Code = 44) Position 1 = 17, Position 2 = 9
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 17, Position 2 = 9
Branch analysis from position: 17
Branch analysis from position: 9
filename:       /in/hSVV5
function name:  (null)
number of ops:  66
compiled vars:  !0 = $ascii, !1 = $unicode, !2 = $i, !3 = $mixed, !4 = $pattern
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'range'
          1        SEND_VAL                                                     '%00'
          2        SEND_VAL                                                     '%FF'
          3        DO_ICALL                                             $5      
          4        FRAMELESS_ICALL_2                implode             ~6      '', $5
          5        ASSIGN                                                       !0, ~6
    4     6        ASSIGN                                                       !1, ''
    5     7        ASSIGN                                                       !2, 0
          8      > JMP                                                          ->15
    6     9    >   INIT_FCALL                                                   'mb_chr'
         10        SEND_VAR                                                     !2
         11        SEND_VAL                                                     'UTF-8'
         12        DO_ICALL                                             $10     
         13        ASSIGN_OP                                         8          !1, $10
    5    14        PRE_INC                                                      !2
         15    >   IS_SMALLER                                                   !2, 500
         16      > JMPNZ                                                        ~13, ->9
    8    17    >   CONCAT                                               ~14     !0, !1
         18        ASSIGN                                                       !3, ~14
   10    19        ASSIGN                                                       !4, '%2F%5B%5CW_%5D%2F'
   12    20        ECHO                                                         'ASCII+pattern+wtih+ASCII+characters%0A'
   13    21        INIT_FCALL                                                   'var_dump'
         22        FRAMELESS_ICALL_3                preg_replace        ~17     !4, ''
         23        OP_DATA                                                      !0
         24        SEND_VAL                                                     ~17
         25        DO_ICALL                                                     
   14    26        ECHO                                                         '%0A'
   16    27        ECHO                                                         'ASCII+pattern+wtih+unicode+characters%0A'
   17    28        INIT_FCALL                                                   'var_dump'
         29        FRAMELESS_ICALL_3                preg_replace        ~19     !4, ''
         30        OP_DATA                                                      !1
         31        SEND_VAL                                                     ~19
         32        DO_ICALL                                                     
   18    33        ECHO                                                         '%0A'
   20    34        ECHO                                                         'ASCII+pattern+wtih+mixed+characters%0A'
   21    35        INIT_FCALL                                                   'var_dump'
         36        FRAMELESS_ICALL_3                preg_replace        ~21     !4, ''
         37        OP_DATA                                                      !3
         38        SEND_VAL                                                     ~21
         39        DO_ICALL                                                     
   22    40        ECHO                                                         '%0A'
   24    41        ECHO                                                         'Unicode+pattern+wtih+ASCII+characters%0A'
   25    42        INIT_FCALL                                                   'var_dump'
         43        CONCAT                                               ~23     !4, 'u'
         44        FRAMELESS_ICALL_3                preg_replace        ~24     ~23, ''
         45        OP_DATA                                                      !0
         46        SEND_VAL                                                     ~24
         47        DO_ICALL                                                     
   26    48        ECHO                                                         '%0A'
   28    49        ECHO                                                         'Unicode+pattern+wtih+unicode+characters%0A'
   29    50        INIT_FCALL                                                   'var_dump'
         51        CONCAT                                               ~26     !4, 'u'
         52        FRAMELESS_ICALL_3                preg_replace        ~27     ~26, ''
         53        OP_DATA                                                      !1
         54        SEND_VAL                                                     ~27
         55        DO_ICALL                                                     
   30    56        ECHO                                                         '%0A'
   32    57        ECHO                                                         'Unicode+pattern+wtih+mixed+characters%0A'
   33    58        INIT_FCALL                                                   'var_dump'
         59        CONCAT                                               ~29     !4, 'u'
         60        FRAMELESS_ICALL_3                preg_replace        ~30     ~29, ''
         61        OP_DATA                                                      !3
         62        SEND_VAL                                                     ~30
         63        DO_ICALL                                                     
   34    64        ECHO                                                         '%0A'
   35    65      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
163.05 ms | 2597 KiB | 16 Q