3v4l.org

run code in 300+ PHP versions simultaneously
<?php $catchablePatterns = [ '(((((((((=|<|>)))))))))', '((((((((([a-z]+)))))))))', '(((((((((\d+)))))))))' ]; $nonCatchablePatterns = []; $modifiers = 'i'; $regex = sprintf( '/(%s)|%s/%s', implode(')|(', $catchablePatterns), implode('|', $nonCatchablePatterns), $modifiers ); //300 tokens $input = 'price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5price>5'; $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; $matches = preg_split($regex, $input, -1, $flags); $offset = null; $matchesDeduplicate = array_filter($matches, function($item)use(&$offset){ if (null === $offset) { $offset = $item[1]; return true; } $filter = $offset !== $item[1]; $offset = $item[1]; return $filter; });

Abusive script

This script was stopped while abusing our resources

Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/KHp2e
function name:  (null)
number of ops:  36
compiled vars:  !0 = $catchablePatterns, !1 = $nonCatchablePatterns, !2 = $modifiers, !3 = $regex, !4 = $input, !5 = $flags, !6 = $matches, !7 = $offset, !8 = $matchesDeduplicate
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    8     1        ASSIGN                                                   !1, <array>
    9     2        ASSIGN                                                   !2, 'i'
   11     3        INIT_FCALL                                               'sprintf'
   12     4        SEND_VAL                                                 '%2F%28%25s%29%7C%25s%2F%25s'
   13     5        INIT_FCALL                                               'implode'
          6        SEND_VAL                                                 '%29%7C%28'
          7        SEND_VAR                                                 !0
          8        DO_ICALL                                         $12     
          9        SEND_VAR                                                 $12
   14    10        INIT_FCALL                                               'implode'
         11        SEND_VAL                                                 '%7C'
         12        SEND_VAR                                                 !1
         13        DO_ICALL                                         $13     
         14        SEND_VAR                                                 $13
   15    15        SEND_VAR                                                 !2
   11    16        DO_ICALL                                         $14     
         17        ASSIGN                                                   !3, $14
   19    18        ASSIGN                                                   !4, 'price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5price%3E5'
   21    19        ASSIGN                                                   !5, 7
   23    20        INIT_FCALL                                               'preg_split'
         21        SEND_VAR                                                 !3
         22        SEND_VAR                                                 !4
         23        SEND_VAL                                                 -1
         24        SEND_VAR                                                 !5
         25        DO_ICALL                                         $18     
         26        ASSIGN                                                   !6, $18
   25    27        ASSIGN                                                   !7, null
   26    28        INIT_FCALL                                               'array_filter'
         29        SEND_VAR                                                 !6
         30        DECLARE_LAMBDA_FUNCTION                          ~21     [0]
         31        BIND_LEXICAL                                             ~21, !7
   35    32        SEND_VAL                                                 ~21
   26    33        DO_ICALL                                         $22     
         34        ASSIGN                                                   !8, $22
   35    35      > RETURN                                                   1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 7
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/KHp2e
function name:  {closure}
number of ops:  14
compiled vars:  !0 = $item, !1 = $offset, !2 = $filter
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   26     0  E >   RECV                                             !0      
          1        BIND_STATIC                                              !1
   27     2        TYPE_CHECK                                    2          !1
          3      > JMPZ                                                     ~3, ->7
   28     4    >   FETCH_DIM_R                                      ~4      !0, 1
          5        ASSIGN                                                   !1, ~4
   29     6      > RETURN                                                   <true>
   31     7    >   FETCH_DIM_R                                      ~6      !0, 1
          8        IS_NOT_IDENTICAL                                 ~7      !1, ~6
          9        ASSIGN                                                   !2, ~7
   32    10        FETCH_DIM_R                                      ~9      !0, 1
         11        ASSIGN                                                   !1, ~9
   34    12      > RETURN                                                   !2
   35    13*     > RETURN                                                   null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
143.43 ms | 1441 KiB | 17 Q