3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * 例外スタックを配列に変換する関数 */ function exception_to_array(Exception $e) { do { $m[] = $e->getMessage(); } while ($e = $e->getPrevious()); return array_reverse($m); } /** * 例外を生成する関数 */ function e($message, $previous = null) { return new RuntimeException($message, 0, $previous); } /** * HTML特殊文字をエスケープする関数 */ function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } // 例外変数初期化 $e = null; if (isset($_FILES['upfile']['error']) && is_array($_FILES['upfile']['error'])) { try { // 各ファイルをチェック foreach ($_FILES['upfile']['error'] as $k => $error) { try { // 更に配列がネストしていれば不正とする if (is_array($error)) { throw e("[{$k}] パラメータが不正です", $e); } // $_FILES['upfile']['error'][$k] の値を確認 switch ($error) { case UPLOAD_ERR_OK: // OK break; case UPLOAD_ERR_NO_FILE: // ファイル未選択 continue 2; case UPLOAD_ERR_INI_SIZE: // php.ini定義の最大サイズ超過 case UPLOAD_ERR_FORM_SIZE: // フォーム定義の最大サイズ超過 throw e("[{$k}] ファイルサイズが大きすぎます", $e); default: throw e("[{$k}] その他のエラーが発生しました", $e); } // ここで定義するサイズ上限のオーバーチェック if ($_FILES['upfile']['size'][$k] > 1000000) { throw e("[{$k}] ファイルサイズが大きすぎます", $e); } // move_uploaded_file関数での「実際にアップロードされたファイルかどうか」 // のチェックを今回は行わないので、is_uploaded_file関数でのチェックが必要 if (!is_uploaded_file($_FILES['upfile']['tmp_name'][$k])) { throw e("[{$k}] 不正なファイルです", $e); } // $_FILES['upfile']['mime']の値はブラウザ側で偽装可能なので // MIMEタイプに対応する拡張子を自前で取得する $info = getimagesize($_FILES['upfile']['tmp_name'][$k]); if ($info === false) { throw e("[{$k}] 画像ファイルではありません", $e); } switch ($info['mime']) { case 'image/gif': $mime = $ext = 'gif'; break; case 'image/png': $mime = $ext = 'png'; break; case 'image/jpeg': $mime = 'jpeg'; $ext = 'jpg'; break; default: throw e("[{$k}] 画像形式が未対応です", $e); } // 画像処理に使う関数名を決定する $create = "imagecreatefrom{$mime}"; $output = "image{$mime}"; // 縦横比を維持したまま 120 * 120 以下に収まるサイズを求める if ($info[0] >= $info[1]) { $dst_w = 120; $dst_h = 120 * $info[1] / $info[0]; } else { $dst_w = 120 * $info[0] / $info[1]; $dst_h = 120; } // ファイルデータからSHA-1ハッシュを取ってファイル名を決定する $src = $create($_FILES['upfile']['tmp_name'][$k]); $dst = imagecreatetruecolor($dst_w, $dst_h); imagecopyresampled( $dst, $src, 0, 0, 0, 0, $dst_w, $dst_h, $info[0], $info[1] ); $output( $dst, sprintf('./resized/%s.%s', sha1_file($_FILES['upfile']['tmp_name'][$k]), $ext ) ); // リソースを解放 imagedestroy($src); imagedestroy($dst); // 形式上、正しい処理を行ったが例外としてスローしておく throw e("[{$k}] リサイズして保存しました", $e); } catch (RuntimeException $e) { } } } catch (RuntimeException $e) { } } // ヘッダー送信 header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html> <html lang="ja"> <head> <title>画像アップロード</title> </head> <body> <?php if ($e): ?> <ul> <?php foreach (exception_to_array($e) as $msg): ?> <li><?=h($msg)?></li> <?php endforeach; ?> </ul> <?php endif; ?> <form enctype="multipart/form-data" method="post" action=""> <fieldset> <legend>画像ファイルを選択(JPEG, GIF, PNGのみ対応)</legend> <ul> <?php for ($i = 0; $i < 10; $i++): ?> <li><input type="file" name="upfile[]"></li> <?php endfor; ?> </ul> <input type="submit" value="送信"> </fieldset> </form> </body> </html>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 5, Position 2 = 10
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 220
Branch analysis from position: 11
2 jumps found. (Code = 77) Position 1 = 15, Position 2 = 217
Branch analysis from position: 15
2 jumps found. (Code = 78) Position 1 = 16, Position 2 = 217
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 27
Branch analysis from position: 19
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 27
6 jumps found. (Code = 187) Position 1 = 37, Position 2 = 38, Position 3 = 39, Position 4 = 39, Position 5 = 47, Position 6 = 28
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 61, Position 2 = 69
Branch analysis from position: 61
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 86
Branch analysis from position: 78
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 86
2 jumps found. (Code = 43) Position 1 = 96, Position 2 = 104
Branch analysis from position: 96
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 104
5 jumps found. (Code = 188) Position 1 = 113, Position 2 = 116, Position 3 = 119, Position 4 = 122, Position 5 = 106
Branch analysis from position: 113
1 jumps found. (Code = 42) Position 1 = 130
Branch analysis from position: 130
2 jumps found. (Code = 43) Position 1 = 141, Position 2 = 148
Branch analysis from position: 141
1 jumps found. (Code = 42) Position 1 = 154
Branch analysis from position: 154
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 148
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 116
1 jumps found. (Code = 42) Position 1 = 130
Branch analysis from position: 130
Branch analysis from position: 119
1 jumps found. (Code = 42) Position 1 = 130
Branch analysis from position: 130
Branch analysis from position: 122
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 106
2 jumps found. (Code = 44) Position 1 = 108, Position 2 = 113
Branch analysis from position: 108
2 jumps found. (Code = 44) Position 1 = 110, Position 2 = 116
Branch analysis from position: 110
2 jumps found. (Code = 44) Position 1 = 112, Position 2 = 119
Branch analysis from position: 112
1 jumps found. (Code = 42) Position 1 = 122
Branch analysis from position: 122
Branch analysis from position: 119
Branch analysis from position: 116
Branch analysis from position: 113
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
Branch analysis from position: 39
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 39
Branch analysis from position: 47
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 30, Position 2 = 37
Branch analysis from position: 30
2 jumps found. (Code = 44) Position 1 = 32, Position 2 = 38
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 39
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 39
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
Branch analysis from position: 39
Branch analysis from position: 39
Branch analysis from position: 38
Branch analysis from position: 37
Branch analysis from position: 217
1 jumps found. (Code = 42) Position 1 = 220
Branch analysis from position: 220
2 jumps found. (Code = 43) Position 1 = 225, Position 2 = 240
Branch analysis from position: 225
2 jumps found. (Code = 77) Position 1 = 230, Position 2 = 238
Branch analysis from position: 230
2 jumps found. (Code = 78) Position 1 = 231, Position 2 = 238
Branch analysis from position: 231
1 jumps found. (Code = 42) Position 1 = 230
Branch analysis from position: 230
Branch analysis from position: 238
1 jumps found. (Code = 42) Position 1 = 245
Branch analysis from position: 245
2 jumps found. (Code = 44) Position 1 = 247, Position 2 = 243
Branch analysis from position: 247
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 243
2 jumps found. (Code = 44) Position 1 = 247, Position 2 = 243
Branch analysis from position: 247
Branch analysis from position: 243
Branch analysis from position: 238
Branch analysis from position: 240
Branch analysis from position: 217
Branch analysis from position: 220
Branch analysis from position: 10
Found catch point at position: 215
Branch analysis from position: 215
2 jumps found. (Code = 107) Position 1 = 216, Position 2 = -2
Branch analysis from position: 216
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
Found catch point at position: 219
Branch analysis from position: 219
2 jumps found. (Code = 107) Position 1 = 220, Position 2 = -2
Branch analysis from position: 220
filename:       /in/O7lQF
function name:  (null)
number of ops:  249
compiled vars:  !0 = $e, !1 = $error, !2 = $k, !3 = $info, !4 = $mime, !5 = $ext, !6 = $create, !7 = $output, !8 = $dst_w, !9 = $dst_h, !10 = $src, !11 = $dst, !12 = $msg, !13 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   ASSIGN                                                   !0, null
   31     1        FETCH_IS                                         ~15     '_FILES'
          2        FETCH_DIM_IS                                     ~16     ~15, 'upfile'
          3        ISSET_ISEMPTY_DIM_OBJ                         0  ~17     ~16, 'error'
          4      > JMPZ_EX                                          ~17     ~17, ->10
          5    >   FETCH_R                      global              ~18     '_FILES'
          6        FETCH_DIM_R                                      ~19     ~18, 'upfile'
          7        FETCH_DIM_R                                      ~20     ~19, 'error'
          8        TYPE_CHECK                                  128  ~21     ~20
          9        BOOL                                             ~17     ~21
         10    > > JMPZ                                                     ~17, ->220
   36    11    >   FETCH_R                      global              ~22     '_FILES'
         12        FETCH_DIM_R                                      ~23     ~22, 'upfile'
         13        FETCH_DIM_R                                      ~24     ~23, 'error'
         14      > FE_RESET_R                                       $25     ~24, ->217
         15    > > FE_FETCH_R                                       ~26     $25, !1, ->217
         16    >   ASSIGN                                                   !2, ~26
   41    17        TYPE_CHECK                                  128          !1
         18      > JMPZ                                                     ~28, ->27
   42    19    >   INIT_FCALL                                               'e'
         20        ROPE_INIT                                     3  ~30     '%5B'
         21        ROPE_ADD                                      1  ~30     ~30, !2
         22        ROPE_END                                      2  ~29     ~30, '%5D+%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%8C%E4%B8%8D%E6%AD%A3%E3%81%A7%E3%81%99'
         23        SEND_VAL                                                 ~29
         24        SEND_VAR                                                 !0
         25        DO_FCALL                                      0  $32     
         26      > THROW                                         0          $32
   46    27    > > SWITCH_LONG                                              !1, [ 0:->37, 4:->38, 1:->39, 2:->39, ], ->47
         28    >   IS_EQUAL                                                 !1, 0
         29      > JMPNZ                                                    ~33, ->37
         30    >   IS_EQUAL                                                 !1, 4
         31      > JMPNZ                                                    ~33, ->38
         32    >   IS_EQUAL                                                 !1, 1
         33      > JMPNZ                                                    ~33, ->39
         34    >   IS_EQUAL                                                 !1, 2
         35      > JMPNZ                                                    ~33, ->39
         36    > > JMP                                                      ->47
   48    37    > > JMP                                                      ->55
   50    38    > > JMP                                                      ->15
   53    39    >   INIT_FCALL                                               'e'
         40        ROPE_INIT                                     3  ~35     '%5B'
         41        ROPE_ADD                                      1  ~35     ~35, !2
         42        ROPE_END                                      2  ~34     ~35, '%5D+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%99%E3%81%8E%E3%81%BE%E3%81%99'
         43        SEND_VAL                                                 ~34
         44        SEND_VAR                                                 !0
         45        DO_FCALL                                      0  $37     
         46      > THROW                                         0          $37
   55    47    >   INIT_FCALL                                               'e'
         48        ROPE_INIT                                     3  ~39     '%5B'
         49        ROPE_ADD                                      1  ~39     ~39, !2
         50        ROPE_END                                      2  ~38     ~39, '%5D+%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F'
         51        SEND_VAL                                                 ~38
         52        SEND_VAR                                                 !0
         53        DO_FCALL                                      0  $41     
         54      > THROW                                         0          $41
   59    55    >   FETCH_R                      global              ~42     '_FILES'
         56        FETCH_DIM_R                                      ~43     ~42, 'upfile'
         57        FETCH_DIM_R                                      ~44     ~43, 'size'
         58        FETCH_DIM_R                                      ~45     ~44, !2
         59        IS_SMALLER                                               1000000, ~45
         60      > JMPZ                                                     ~46, ->69
   60    61    >   INIT_FCALL                                               'e'
         62        ROPE_INIT                                     3  ~48     '%5B'
         63        ROPE_ADD                                      1  ~48     ~48, !2
         64        ROPE_END                                      2  ~47     ~48, '%5D+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%99%E3%81%8E%E3%81%BE%E3%81%99'
         65        SEND_VAL                                                 ~47
         66        SEND_VAR                                                 !0
         67        DO_FCALL                                      0  $50     
         68      > THROW                                         0          $50
   65    69    >   INIT_FCALL                                               'is_uploaded_file'
         70        FETCH_R                      global              ~51     '_FILES'
         71        FETCH_DIM_R                                      ~52     ~51, 'upfile'
         72        FETCH_DIM_R                                      ~53     ~52, 'tmp_name'
         73        FETCH_DIM_R                                      ~54     ~53, !2
         74        SEND_VAL                                                 ~54
         75        DO_ICALL                                         $55     
         76        BOOL_NOT                                         ~56     $55
         77      > JMPZ                                                     ~56, ->86
   66    78    >   INIT_FCALL                                               'e'
         79        ROPE_INIT                                     3  ~58     '%5B'
         80        ROPE_ADD                                      1  ~58     ~58, !2
         81        ROPE_END                                      2  ~57     ~58, '%5D+%E4%B8%8D%E6%AD%A3%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E3%81%99'
         82        SEND_VAL                                                 ~57
         83        SEND_VAR                                                 !0
         84        DO_FCALL                                      0  $60     
         85      > THROW                                         0          $60
   71    86    >   INIT_FCALL                                               'getimagesize'
         87        FETCH_R                      global              ~61     '_FILES'
         88        FETCH_DIM_R                                      ~62     ~61, 'upfile'
         89        FETCH_DIM_R                                      ~63     ~62, 'tmp_name'
         90        FETCH_DIM_R                                      ~64     ~63, !2
         91        SEND_VAL                                                 ~64
         92        DO_ICALL                                         $65     
         93        ASSIGN                                                   !3, $65
   72    94        TYPE_CHECK                                    4          !3
         95      > JMPZ                                                     ~67, ->104
   73    96    >   INIT_FCALL                                               'e'
         97        ROPE_INIT                                     3  ~69     '%5B'
         98        ROPE_ADD                                      1  ~69     ~69, !2
         99        ROPE_END                                      2  ~68     ~69, '%5D+%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93'
        100        SEND_VAL                                                 ~68
        101        SEND_VAR                                                 !0
        102        DO_FCALL                                      0  $71     
        103      > THROW                                         0          $71
   75   104    >   FETCH_DIM_R                                      ~72     !3, 'mime'
        105      > SWITCH_STRING                                            ~72, [ 'image%2Fgif':->113, 'image%2Fpng':->116, 'image%2Fjpeg':->119, ], ->122
   76   106    >   CASE                                                     ~72, 'image%2Fgif'
        107      > JMPNZ                                                    ~73, ->113
   79   108    >   CASE                                                     ~72, 'image%2Fpng'
        109      > JMPNZ                                                    ~73, ->116
   82   110    >   CASE                                                     ~72, 'image%2Fjpeg'
        111      > JMPNZ                                                    ~73, ->119
        112    > > JMP                                                      ->122
   77   113    >   ASSIGN                                           ~74     !5, 'gif'
        114        ASSIGN                                                   !4, ~74
   78   115      > JMP                                                      ->130
   80   116    >   ASSIGN                                           ~76     !5, 'png'
        117        ASSIGN                                                   !4, ~76
   81   118      > JMP                                                      ->130
   83   119    >   ASSIGN                                                   !4, 'jpeg'
   84   120        ASSIGN                                                   !5, 'jpg'
   85   121      > JMP                                                      ->130
   87   122    >   INIT_FCALL                                               'e'
        123        ROPE_INIT                                     3  ~81     '%5B'
        124        ROPE_ADD                                      1  ~81     ~81, !2
        125        ROPE_END                                      2  ~80     ~81, '%5D+%E7%94%BB%E5%83%8F%E5%BD%A2%E5%BC%8F%E3%81%8C%E6%9C%AA%E5%AF%BE%E5%BF%9C%E3%81%A7%E3%81%99'
        126        SEND_VAL                                                 ~80
        127        SEND_VAR                                                 !0
        128        DO_FCALL                                      0  $83     
        129      > THROW                                         0          $83
        130    >   FREE                                                     ~72
   91   131        NOP                                                      
        132        FAST_CONCAT                                      ~84     'imagecreatefrom', !4
        133        ASSIGN                                                   !6, ~84
   92   134        NOP                                                      
        135        FAST_CONCAT                                      ~86     'image', !4
        136        ASSIGN                                                   !7, ~86
   95   137        FETCH_DIM_R                                      ~88     !3, 0
        138        FETCH_DIM_R                                      ~89     !3, 1
        139        IS_SMALLER_OR_EQUAL                                      ~89, ~88
        140      > JMPZ                                                     ~90, ->148
   96   141    >   ASSIGN                                                   !8, 120
   97   142        FETCH_DIM_R                                      ~92     !3, 1
        143        MUL                                              ~93     ~92, 120
        144        FETCH_DIM_R                                      ~94     !3, 0
        145        DIV                                              ~95     ~93, ~94
        146        ASSIGN                                                   !9, ~95
        147      > JMP                                                      ->154
   99   148    >   FETCH_DIM_R                                      ~97     !3, 0
        149        MUL                                              ~98     ~97, 120
        150        FETCH_DIM_R                                      ~99     !3, 1
        151        DIV                                              ~100    ~98, ~99
        152        ASSIGN                                                   !8, ~100
  100   153        ASSIGN                                                   !9, 120
  104   154    >   INIT_DYNAMIC_CALL                                        !6
        155        CHECK_FUNC_ARG                                           
        156        FETCH_FUNC_ARG               global              $103    '_FILES'
        157        FETCH_DIM_FUNC_ARG                               $104    $103, 'upfile'
        158        FETCH_DIM_FUNC_ARG                               $105    $104, 'tmp_name'
        159        FETCH_DIM_FUNC_ARG                               $106    $105, !2
        160        SEND_FUNC_ARG                                            $106
        161        DO_FCALL                                      0  $107    
        162        ASSIGN                                                   !10, $107
  105   163        INIT_FCALL_BY_NAME                                       'imagecreatetruecolor'
        164        SEND_VAR_EX                                              !8
        165        SEND_VAR_EX                                              !9
        166        DO_FCALL                                      0  $109    
        167        ASSIGN                                                   !11, $109
  106   168        INIT_FCALL_BY_NAME                                       'imagecopyresampled'
  107   169        SEND_VAR_EX                                              !11
        170        SEND_VAR_EX                                              !10
  108   171        SEND_VAL_EX                                              0
        172        SEND_VAL_EX                                              0
        173        SEND_VAL_EX                                              0
        174        SEND_VAL_EX                                              0
  107   175        SEND_VAR_EX                                              !8
        176        SEND_VAR_EX                                              !9
        177        CHECK_FUNC_ARG                                           
  109   178        FETCH_DIM_FUNC_ARG                               $111    !3, 0
        179        SEND_FUNC_ARG                                            $111
        180        CHECK_FUNC_ARG                                           
        181        FETCH_DIM_FUNC_ARG                               $112    !3, 1
        182        SEND_FUNC_ARG                                            $112
        183        DO_FCALL                                      0          
  111   184        INIT_DYNAMIC_CALL                                        !7
  112   185        SEND_VAR_EX                                              !11
  113   186        INIT_FCALL                                               'sprintf'
        187        SEND_VAL                                                 '.%2Fresized%2F%25s.%25s'
  114   188        INIT_FCALL                                               'sha1_file'
        189        FETCH_R                      global              ~114    '_FILES'
        190        FETCH_DIM_R                                      ~115    ~114, 'upfile'
        191        FETCH_DIM_R                                      ~116    ~115, 'tmp_name'
        192        FETCH_DIM_R                                      ~117    ~116, !2
        193        SEND_VAL                                                 ~117
        194        DO_ICALL                                         $118    
        195        SEND_VAR                                                 $118
  115   196        SEND_VAR                                                 !5
        197        DO_ICALL                                         $119    
        198        SEND_VAR_NO_REF_EX                                       $119
        199        DO_FCALL                                      0          
  120   200        INIT_FCALL_BY_NAME                                       'imagedestroy'
        201        SEND_VAR_EX                                              !10
        202        DO_FCALL                                      0          
  121   203        INIT_FCALL_BY_NAME                                       'imagedestroy'
        204        SEND_VAR_EX                                              !11
        205        DO_FCALL                                      0          
  124   206        INIT_FCALL                                               'e'
        207        ROPE_INIT                                     3  ~124    '%5B'
        208        ROPE_ADD                                      1  ~124    ~124, !2
        209        ROPE_END                                      2  ~123    ~124, '%5D+%E3%83%AA%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F'
        210        SEND_VAL                                                 ~123
        211        SEND_VAR                                                 !0
        212        DO_FCALL                                      0  $126    
        213      > THROW                                         0          $126
        214*       JMP                                                      ->216
  126   215  E > > CATCH                                       last         'RuntimeException'
   36   216    > > JMP                                                      ->15
        217    >   FE_FREE                                                  $25
        218      > JMP                                                      ->220
  130   219  E > > CATCH                                       last         'RuntimeException'
  135   220    >   INIT_FCALL                                               'header'
        221        SEND_VAL                                                 'Content-Type%3A+text%2Fhtml%3B+charset%3Dutf-8'
        222        DO_ICALL                                                 
  138   223        ECHO                                                     '%3C%21DOCTYPE+html%3E%0A%3Chtml+lang%3D%22ja%22%3E%0A++%3Chead%3E%0A++++%3Ctitle%3E%E7%94%BB%E5%83%8F%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%3C%2Ftitle%3E%0A++%3C%2Fhead%3E%0A++%3Cbody%3E%0A'
  144   224      > JMPZ                                                     !0, ->240
  145   225    >   ECHO                                                     '++%3Cul%3E%0A'
  146   226        INIT_FCALL                                               'exception_to_array'
        227        SEND_VAR                                                 !0
        228        DO_FCALL                                      0  $128    
        229      > FE_RESET_R                                       $129    $128, ->238
        230    > > FE_FETCH_R                                               $129, !12, ->238
  147   231    >   ECHO                                                     '++++%3Cli%3E'
        232        INIT_FCALL                                               'h'
        233        SEND_VAR                                                 !12
        234        DO_FCALL                                      0  $130    
        235        ECHO                                                     $130
        236        ECHO                                                     '%3C%2Fli%3E%0A'
  146   237      > JMP                                                      ->230
        238    >   FE_FREE                                                  $129
  149   239        ECHO                                                     '++%3C%2Ful%3E%0A'
  151   240    >   ECHO                                                     '++++%3Cform+enctype%3D%22multipart%2Fform-data%22+method%3D%22post%22+action%3D%22%22%3E%0A++++++%3Cfieldset%3E%0A++++++++%3Clegend%3E%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%81%B8%E6%8A%9E%28JPEG%2C+GIF%2C+PNG%E3%81%AE%E3%81%BF%E5%AF%BE%E5%BF%9C%29%3C%2Flegend%3E%0A++++++++%3Cul%3E%0A'
  155   241        ASSIGN                                                   !13, 0
        242      > JMP                                                      ->245
  156   243    >   ECHO                                                     '++++++++++%3Cli%3E%3Cinput+type%3D%22file%22+name%3D%22upfile%5B%5D%22%3E%3C%2Fli%3E%0A'
  155   244        PRE_INC                                                  !13
        245    >   IS_SMALLER                                               !13, 10
        246      > JMPNZ                                                    ~133, ->243
  158   247    >   ECHO                                                     '++++++++%3C%2Ful%3E%0A++++++++%3Cinput+type%3D%22submit%22+value%3D%22%E9%80%81%E4%BF%A1%22%3E%0A++++++%3C%2Ffieldset%3E%0A++++%3C%2Fform%3E%0A++%3C%2Fbody%3E%0A%3C%2Fhtml%3E'
  163   248      > RETURN                                                   1

Function exception_to_array:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 1
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 1
filename:       /in/O7lQF
function name:  exception_to_array
number of ops:  14
compiled vars:  !0 = $e, !1 = $m
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
    8     1    >   INIT_METHOD_CALL                                         !0, 'getMessage'
          2        DO_FCALL                                      0  $3      
          3        ASSIGN_DIM                                               !1
          4        OP_DATA                                                  $3
    9     5        INIT_METHOD_CALL                                         !0, 'getPrevious'
          6        DO_FCALL                                      0  $4      
          7        ASSIGN                                           ~5      !0, $4
          8      > JMPNZ                                                    ~5, ->1
   10     9    >   INIT_FCALL                                               'array_reverse'
         10        SEND_VAR                                                 !1
         11        DO_ICALL                                         $6      
         12      > RETURN                                                   $6
   11    13*     > RETURN                                                   null

End of function exception_to_array

Function e:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/O7lQF
function name:  e
number of ops:  9
compiled vars:  !0 = $message, !1 = $previous
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   16     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      null
   17     2        NEW                                              $2      'RuntimeException'
          3        SEND_VAR_EX                                              !0
          4        SEND_VAL_EX                                              0
          5        SEND_VAR_EX                                              !1
          6        DO_FCALL                                      0          
          7      > RETURN                                                   $2
   18     8*     > RETURN                                                   null

End of function e

Function h:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/O7lQF
function name:  h
number of ops:  8
compiled vars:  !0 = $str
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   23     0  E >   RECV                                             !0      
   24     1        INIT_FCALL                                               'htmlspecialchars'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 3
          4        SEND_VAL                                                 'UTF-8'
          5        DO_ICALL                                         $1      
          6      > RETURN                                                   $1
   25     7*     > RETURN                                                   null

End of function h

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
279.14 ms | 1431 KiB | 38 Q