3v4l.org

run code in 300+ PHP versions simultaneously
<?php $content = '/NameType /FlateDecode /Contents[4 0 R 42]/Fonts<</F1 41/F2 43>>/NullType null/StringType(hello))/DateType(D:20130901235555+02\'00\')/XRefType 2 0 R /NumericType 8/HexaType<0020>/BooleanType false'; if (preg_match('/^\s*\((?P<name>.*)/s', $content, $match)) { } $offset=0; if (preg_match('/^\s*\((?P<name>.*)/s', $content, $match)) { $name = $match['name']; // Find next ')' not escaped. $cur_start_text = $start_search_end = 0; while (($cur_start_pos = strpos($name, ')/', $start_search_end)) !== false) { $cur_extract = substr($name, $cur_start_text, $cur_start_pos - $cur_start_text); preg_match('/(?P<escape>[\\\]*)$/s', $cur_extract, $match); if (!(strlen($match['escape']) % 2)) { break; } $start_search_end = $cur_start_pos + 1; } // Extract string. $name = substr($name, 0, $cur_start_pos); $offset += strpos($content, '(') + $cur_start_pos + 2; // 2 for '(' and ')' $name = str_replace( array('\\\\', '\\ ', '\\/', '\(', '\)', '\n', '\r', '\t'), array('\\', ' ', '/', '(', ')', "\n", "\r", "\t"), $name ); print_r($name); } // your code goes here echo "test";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 7
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 69
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 19
Branch analysis from position: 47
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 37
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 19
Branch analysis from position: 47
Branch analysis from position: 19
Branch analysis from position: 69
Branch analysis from position: 7
filename:       /in/eWWh9
function name:  (null)
number of ops:  71
compiled vars:  !0 = $content, !1 = $match, !2 = $offset, !3 = $name, !4 = $cur_start_text, !5 = $start_search_end, !6 = $cur_extract, !7 = $cur_start_pos
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%2FNameType+%2FFlateDecode%0A++++++++%2FContents%5B4+0+R+42%5D%2FFonts%3C%3C%2FF1+41%2FF2+43%3E%3E%2FNullType%0A++++++++null%2FStringType%28hello%29%29%2FDateType%28D%3A20130901235555%2B02%2700%27%29%2FXRefType+2+0+R%0A++++++++%2FNumericType+8%2FHexaType%3C0020%3E%2FBooleanType+false'
    6     1        INIT_FCALL                                               'preg_match'
          2        SEND_VAL                                                 '%2F%5E%5Cs%2A%5C%28%28%3FP%3Cname%3E.%2A%29%2Fs'
          3        SEND_VAR                                                 !0
          4        SEND_REF                                                 !1
          5        DO_ICALL                                         $9      
          6      > JMPZ                                                     $9, ->7
    9     7    >   ASSIGN                                                   !2, 0
   10     8        INIT_FCALL                                               'preg_match'
          9        SEND_VAL                                                 '%2F%5E%5Cs%2A%5C%28%28%3FP%3Cname%3E.%2A%29%2Fs'
         10        SEND_VAR                                                 !0
         11        SEND_REF                                                 !1
         12        DO_ICALL                                         $11     
         13      > JMPZ                                                     $11, ->69
   12    14    >   FETCH_DIM_R                                      ~12     !1, 'name'
         15        ASSIGN                                                   !3, ~12
   14    16        ASSIGN                                           ~14     !5, 0
         17        ASSIGN                                                   !4, ~14
   15    18      > JMP                                                      ->39
   16    19    >   INIT_FCALL                                               'substr'
         20        SEND_VAR                                                 !3
         21        SEND_VAR                                                 !4
         22        SUB                                              ~16     !7, !4
         23        SEND_VAL                                                 ~16
         24        DO_ICALL                                         $17     
         25        ASSIGN                                                   !6, $17
   17    26        INIT_FCALL                                               'preg_match'
         27        SEND_VAL                                                 '%2F%28%3FP%3Cescape%3E%5B%5C%5C%5D%2A%29%24%2Fs'
         28        SEND_VAR                                                 !6
         29        SEND_REF                                                 !1
         30        DO_ICALL                                                 
   18    31        FETCH_DIM_R                                      ~20     !1, 'escape'
         32        STRLEN                                           ~21     ~20
         33        MOD                                              ~22     ~21, 2
         34        BOOL_NOT                                         ~23     ~22
         35      > JMPZ                                                     ~23, ->37
   19    36    > > JMP                                                      ->47
   21    37    >   ADD                                              ~24     !7, 1
         38        ASSIGN                                                   !5, ~24
   15    39    >   INIT_FCALL                                               'strpos'
         40        SEND_VAR                                                 !3
         41        SEND_VAL                                                 '%29%2F'
         42        SEND_VAR                                                 !5
         43        DO_ICALL                                         $26     
         44        ASSIGN                                           ~27     !7, $26
         45        TYPE_CHECK                                  1018          ~27
         46      > JMPNZ                                                    ~28, ->19
   25    47    >   INIT_FCALL                                               'substr'
         48        SEND_VAR                                                 !3
         49        SEND_VAL                                                 0
         50        SEND_VAR                                                 !7
         51        DO_ICALL                                         $29     
         52        ASSIGN                                                   !3, $29
   26    53        INIT_FCALL                                               'strpos'
         54        SEND_VAR                                                 !0
         55        SEND_VAL                                                 '%28'
         56        DO_ICALL                                         $31     
         57        ADD                                              ~32     $31, !7
         58        ADD                                              ~33     ~32, 2
         59        ASSIGN_OP                                     1          !2, ~33
   27    60        INIT_FCALL                                               'str_replace'
   28    61        SEND_VAL                                                 <array>
   29    62        SEND_VAL                                                 <array>
   30    63        SEND_VAR                                                 !3
         64        DO_ICALL                                         $35     
   27    65        ASSIGN                                                   !3, $35
   32    66        INIT_FCALL                                               'print_r'
         67        SEND_VAR                                                 !3
         68        DO_ICALL                                                 
   35    69    >   ECHO                                                     'test'
         70      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.37 ms | 1400 KiB | 23 Q