3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tpl['title']='Админка'; if (isset($_COOKIE['user']) && $_COOKIE['status']<=3) { $tpl['menu']='<a href="build.php"> BUILD</a><br> <a href="admin.php?act=pages">Страницы</a><br> <a href="admin.php?act=users">Пользователи</a><br> <a href="admin.php?act=files">Файлы</a><br> <a href="admin.php?act=settings">Настройки</a><br> <a href="admin.php?act=upload">UPLOAD</a>'; function perms($file) { echo substr(sprintf('%o', fileperms($file)), -4); } $dirrw=realpath(isset($_REQUEST['dir'])? $_REQUEST['dir']:'.').'/'; $htmlchars = Array( "<" => "&lt;", ">" => "&gt;", "\"" => "&quot;", "&" => "&amp;"); $p=$_REQUEST; if (isset($_GET['dir'])) $p['act']='files'; switch ($p['act']) { case 'recrmdir': function dir_remove($dir) { if (!file_exists($dir)) return false; $dir_arr = array_diff( scandir($dir), Array('.', '..') ); foreach ($dir_arr as $f) { if (is_file($dir.'/'.$f)) { unlink($dir.'/'.$f); echo 'Удален файл '.$dir.'/'.$f.'<br>'; } elseif (is_dir($dir.'/'.$f)) { echo 'Удалена папка '.$dir.'/'.$f.'<br>'; dir_remove($dir.'/'.$f); } } if(file_exists($dir)) rmdir($dir); } echo '<div class="ok">'; dir_remove($p['z']); echo '</div>'; break; case 'chmod': eval('chmod(\'' . $p['z'] . '\',0' . $p['x'] . ');'); echo 'Права изменены '.$p['z'] . '--> ' . $p['x']; break; case 'save': $asg = str_replace($p['r'], $p['t'], implode("\n", array_filter($p['s']))); $asg=str_replace("\n\n","\n",$asg); $cv = file_put_contents($p['a'], $asg); break; case 'edit': echo '</div><form action="admin.php" method="post"> <input type="hidden" name="act" value="rename"> <input type="hidden" name="z" value="' . $p['z'] . '"><br> Переименовать:<br><input type="text" name="newname" value="'.basename($p['z']).'"><input type="submit"></form> <form action="admin.php" method="post"> <input type="hidden" name="act" value="chmod"> <input type="hidden" name="z" value="' . $p['z'] . '"><br>Изм. права:<br><input type="text" name="x" value="'; perms($p['z']); echo '"><input type="submit"></form><br><a href="admin.php?act=editstr&z=' . $p['z'] . '">Редактировать</a><br><br>'; tpl(); case 'editstr': { $countt=count(file($p['z'])); echo '</div><form action="admin.php" method="post"> <input type="hidden" name="act" value="save"> <input type="textarea" value="' . $p['z'] . '" name="a"><br>Заменить:<textarea name="r"></textarea> <br>На:<textarea name="t"></textarea><br> <textarea name="s[]" rows="'.$countt.'" cols="50">' . strtr(file_get_contents($p['z']), $htmlchars) . '</textarea> <br><input type="submit"></form>'; tpl(); break; } case 'rename': { rename($p['z'], dirname($p['z']).'/'.$p['newname']); break; } case 'Переместить': { foreach ($p['file'] as $files) { if (rename($files,realpath(dirname($files).'/'.$p['dirr']).'/'.basename($files))) { echo 'Перемещено!'; } } break; } case 'Копировать': { foreach ($p['file'] as $files) { if (copy($files,realpath(dirname($files).'/'.$p['dirr']).'/'.basename($files))) { echo 'Скопирован' . $files . ' в ' . $p['dirr'] . '<br>'; } else echo 'Не скопирован: ' . $p['z']; } break; } case 'Удалить': { foreach ($p['file'] as $files) { if (unlink($files)) echo 'Удален файл ' . $files . '<br>'; } break; } case 'mkdir': { if (mkdir($p['z'], 0777)) echo '<div class="ok">Папка ' . $p['z'] . ' создана</div>'; else echo '<div class="error">Папка ' . $p['z'] . ' не создана</div>'; break; } case 'rmdir': { if (rmdir($p['z'])) echo '<div class="ok">Папка ' . $p['z'] . ' удалена</div>'; else echo '<div class="error">Папка ' . $p['z'] . ' не удалена</div>'; break; } case 'mkfile': { if (file_exists($p['z'])) echo '<div class="warning">Файл ' . $p['z'] . ' существует</div>'; else { echo '<div class="ok">Файл ' . $p['z'] . ' создан</div>'; $fp = fopen($p['z'], 'w+'); } } break; case 'files': echo '<br>'; #start of file list if ($handle = opendir($dirrw)) { echo '<form action="admin.php" method="post"><input type="text" name="z"><select name="act"><option value="mkdir">Папка <option value="mkfile">Файл</select><input type="submit" value="Создать"></form><form action="admin.php" method="get"> <input type="submit" name="act" value="Удалить"><br> <input type="submit" name="act" value="Переместить"><br> <input type="submit" name="act" value="Копировать"><br> <input type="text" name="dirr"><br>'; $arrwe = Array(); while (false !== ($fle = readdir($handle))) { if ($fle != ".") { if (is_dir($dirrw.$fle)) { $arrdirs[] = $fle; } else { $arrfls[]= $fle; } } } if (count($arrdirs)>=1) { sort($arrdirs); foreach ($arrdirs as $arrw) { echo '<b><a href="admin.php?dir=' . $dirrw . $arrw . '/">' . $arrw . '/</a></b> <a href="admin.php?act=rmdir&z=' . $dirrw . $arrw . '">[Удалить</a><a href="admin.php?act=recrmdir&z=' . $dirrw . $arrw . '">[рекурс.]]</a> '; $perms = $dirrw . $arrw; perms($perms); echo '<hr>'; } } else echo '<br>Нет папок!<br>'; if (count($arrfls)>=1) { sort($arrfls); echo 'Файлы:<br>'; foreach ($arrfls as $arrw) { echo '<input type="checkbox" name="file[]" value="' . $dirrw . $arrw . '">'; echo '<a href="admin.php?act=edit&z='.$dirrw.$arrw . '">' . $arrw . '</a>'; if (strstr($arrw, '.zip')) echo ' <a href="arch.php?file=' . $dirrw . $arrw . '">[Просм.]</a> <a href="arch.php?s=unpack&file=' . $dirrw . $arrw . '">[^^^]</a> '; echo ' <a href="dl.php?f=' . $dirrw . $arrw . '&name='.$arrw.'">[Скачать]</a> <a href="look.php?q='.$dirrw.$arrw.'">[Откр.]</a><br> '; if (filesize($dirrw.$arrw)<1000) echo filesize($dirrw.$arrw).' байт'; elseif (filesize($dirrw.$arrw)>(1024*1024)) echo round(filesize($dirrw.$arrw)/(1024*1024),1).' Мб'; elseif (filesize($dirrw.$arrw)>999) echo round(filesize($dirrw.$arrw)/1024,1).' Кб'; echo ' ('; perms($dirrw.$arrw); echo ')<hr>'; } } else echo '<div class="warning">Нет файлов!</div>'; closedir($handle); echo '</form>'; } break; case 'upload': echo '<form enctype="multipart/form-data" action="upload.php" method="post"> <input type="file" name="1" size=11><br> <input type="textarea" name="filename1"><br> <input type="file" name="2" size=11><br> <input type="textarea" name="filename2"><br> <input type="file" name="3" size=11><br> <input type="textarea" name="filename3" value=""><br> Папка:<br><input type="textarea" name="dir" value=""><br> <input type="submit" value="Выкачать"> </form>'; break; case 'pages': { if ($handle = opendir('pages')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && !is_dir('pages/'.$file)) { echo '<a href="index.php?a='.$file.'">'.$file.'</a>'; echo ' <a href="admin.php?act=Удалить&file[]=pages/'.$file.'">Удалить</a> '; echo ' <a href="admin.php?act=edit&z=pages/'.$file.'">Ред.</a><hr>'; } } closedir($handle); } } break; case 'users': { if (!empty($p['ban'])) { echo 'Пользователь "'.$p['ban'].'" забанен!<br>'; replace_ini('users/'.$p['ban'],array('ban'=>'1')); } if (!empty($p['del'])) { unlink('users/'.$p['del']); } if ($handle = opendir('users')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && !is_dir('users/'.$file)) { echo '<a href="user.php?user='.$file.'">'.$file.'</a>'; echo ' <a href="admin.php?act=users&del='.$file.'">Удалить</a> '; echo ' <a href="admin.php?act=edit&z=users/'.$file.'">Ред.</a> <a href="admin.php?act=users&ban='.$file.'">Банить</a><hr>'; } } closedir($handle); } break; } case 'settings': { echo '<form action="admin.php" method="post"><input type="hidden" name="z" value="config.ini"><input type="hidden" name="act" value="conf">'; $conf=parse_ini_file('config.ini'); echo 'Имя сайта:<textarea name="s[sitename]" cols="40" rows="3">' . $conf['sitename'] . '</textarea><br>'; echo 'Адрес сайта:<textarea name="s[addr]" cols="40" rows="3">' . $conf['addr'] . '</textarea><br>'; echo 'Сообщение о закрытом сайте:<textarea name="s[offmsg]" cols="40" rows="3">' . $conf['offmsg'] . '</textarea><br>'; echo '<input type="radio" name="site" value="1" '; if ($conf['site']==1) echo 'checked'; echo '> Сайт вкл.<input type="submit" value="save"></form>'; } break; case 'conf': { replace_ini($p['z'],$p['s']); } break; } } else echo '<div class="error">404 страница не найдена</div>'; tpl(); ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 611
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 21
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 34
Branch analysis from position: 32
20 jumps found. (Code = 188) Position 1 = 73, Position 2 = 82, Position 3 = 96, Position 4 = 125, Position 5 = 149, Position 6 = 174, Position 7 = 187, Position 8 = 213, Position 9 = 248, Position 10 = 261, Position 11 = 277, Position 12 = 292, Position 13 = 313, Position 14 = 473, Position 15 = 475, Position 16 = 514, Position 17 = 576, Position 18 = 600, Position 19 = 609, Position 20 = 36
Branch analysis from position: 73
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
1 jumps found. (Code = 42) Position 1 = 612
Branch analysis from position: 612
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 82
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 96
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 125
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 149
Branch analysis from position: 174
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 187
2 jumps found. (Code = 77) Position 1 = 189, Position 2 = 211
Branch analysis from position: 189
2 jumps found. (Code = 78) Position 1 = 190, Position 2 = 211
Branch analysis from position: 190
2 jumps found. (Code = 43) Position 1 = 209, Position 2 = 210
Branch analysis from position: 209
1 jumps found. (Code = 42) Position 1 = 189
Branch analysis from position: 189
Branch analysis from position: 210
Branch analysis from position: 211
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 211
Branch analysis from position: 213
2 jumps found. (Code = 77) Position 1 = 215, Position 2 = 246
Branch analysis from position: 215
2 jumps found. (Code = 78) Position 1 = 216, Position 2 = 246
Branch analysis from position: 216
2 jumps found. (Code = 43) Position 1 = 235, Position 2 = 242
Branch analysis from position: 235
1 jumps found. (Code = 42) Position 1 = 245
Branch analysis from position: 245
1 jumps found. (Code = 42) Position 1 = 215
Branch analysis from position: 215
Branch analysis from position: 242
1 jumps found. (Code = 42) Position 1 = 215
Branch analysis from position: 215
Branch analysis from position: 246
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 246
Branch analysis from position: 248
2 jumps found. (Code = 77) Position 1 = 250, Position 2 = 259
Branch analysis from position: 250
2 jumps found. (Code = 78) Position 1 = 251, Position 2 = 259
Branch analysis from position: 251
2 jumps found. (Code = 43) Position 1 = 255, Position 2 = 258
Branch analysis from position: 255
1 jumps found. (Code = 42) Position 1 = 250
Branch analysis from position: 250
Branch analysis from position: 258
Branch analysis from position: 259
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 259
Branch analysis from position: 261
2 jumps found. (Code = 43) Position 1 = 267, Position 2 = 272
Branch analysis from position: 267
1 jumps found. (Code = 42) Position 1 = 276
Branch analysis from position: 276
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 272
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 277
2 jumps found. (Code = 43) Position 1 = 282, Position 2 = 287
Branch analysis from position: 282
1 jumps found. (Code = 42) Position 1 = 291
Branch analysis from position: 291
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 287
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 292
2 jumps found. (Code = 43) Position 1 = 297, Position 2 = 302
Branch analysis from position: 297
1 jumps found. (Code = 42) Position 1 = 312
Branch analysis from position: 312
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 302
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 313
2 jumps found. (Code = 43) Position 1 = 319, Position 2 = 472
Branch analysis from position: 319
1 jumps found. (Code = 42) Position 1 = 334
Branch analysis from position: 334
2 jumps found. (Code = 44) Position 1 = 340, Position 2 = 322
Branch analysis from position: 340
2 jumps found. (Code = 43) Position 1 = 343, Position 2 = 369
Branch analysis from position: 343
2 jumps found. (Code = 77) Position 1 = 347, Position 2 = 367
Branch analysis from position: 347
2 jumps found. (Code = 78) Position 1 = 348, Position 2 = 367
Branch analysis from position: 348
1 jumps found. (Code = 42) Position 1 = 347
Branch analysis from position: 347
Branch analysis from position: 367
1 jumps found. (Code = 42) Position 1 = 370
Branch analysis from position: 370
2 jumps found. (Code = 43) Position 1 = 373, Position 2 = 467
Branch analysis from position: 373
2 jumps found. (Code = 77) Position 1 = 378, Position 2 = 465
Branch analysis from position: 378
2 jumps found. (Code = 78) Position 1 = 379, Position 2 = 465
Branch analysis from position: 379
2 jumps found. (Code = 43) Position 1 = 394, Position 2 = 401
Branch analysis from position: 394
2 jumps found. (Code = 43) Position 1 = 416, Position 2 = 423
Branch analysis from position: 416
1 jumps found. (Code = 42) Position 1 = 458
Branch analysis from position: 458
1 jumps found. (Code = 42) Position 1 = 378
Branch analysis from position: 378
Branch analysis from position: 423
2 jumps found. (Code = 43) Position 1 = 429, Position 2 = 441
Branch analysis from position: 429
1 jumps found. (Code = 42) Position 1 = 458
Branch analysis from position: 458
Branch analysis from position: 441
2 jumps found. (Code = 43) Position 1 = 447, Position 2 = 458
Branch analysis from position: 447
1 jumps found. (Code = 42) Position 1 = 378
Branch analysis from position: 378
Branch analysis from position: 458
Branch analysis from position: 401
Branch analysis from position: 465
1 jumps found. (Code = 42) Position 1 = 468
Branch analysis from position: 468
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 465
Branch analysis from position: 467
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 367
Branch analysis from position: 369
2 jumps found. (Code = 43) Position 1 = 373, Position 2 = 467
Branch analysis from position: 373
Branch analysis from position: 467
Branch analysis from position: 322
2 jumps found. (Code = 43) Position 1 = 324, Position 2 = 334
Branch analysis from position: 324
2 jumps found. (Code = 43) Position 1 = 329, Position 2 = 332
Branch analysis from position: 329
1 jumps found. (Code = 42) Position 1 = 334
Branch analysis from position: 334
Branch analysis from position: 332
2 jumps found. (Code = 44) Position 1 = 340, Position 2 = 322
Branch analysis from position: 340
Branch analysis from position: 322
Branch analysis from position: 334
Branch analysis from position: 472
Branch analysis from position: 473
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 475
2 jumps found. (Code = 43) Position 1 = 480, Position 2 = 513
Branch analysis from position: 480
1 jumps found. (Code = 42) Position 1 = 504
Branch analysis from position: 504
2 jumps found. (Code = 44) Position 1 = 510, Position 2 = 481
Branch analysis from position: 510
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 481
2 jumps found. (Code = 46) Position 1 = 483, Position 2 = 485
Branch analysis from position: 483
2 jumps found. (Code = 46) Position 1 = 486, Position 2 = 492
Branch analysis from position: 486
2 jumps found. (Code = 43) Position 1 = 493, Position 2 = 504
Branch analysis from position: 493
2 jumps found. (Code = 44) Position 1 = 510, Position 2 = 481
Branch analysis from position: 510
Branch analysis from position: 481
Branch analysis from position: 504
Branch analysis from position: 492
Branch analysis from position: 485
Branch analysis from position: 513
Branch analysis from position: 514
2 jumps found. (Code = 43) Position 1 = 517, Position 2 = 527
Branch analysis from position: 517
2 jumps found. (Code = 43) Position 1 = 530, Position 2 = 535
Branch analysis from position: 530
2 jumps found. (Code = 43) Position 1 = 540, Position 2 = 575
Branch analysis from position: 540
1 jumps found. (Code = 42) Position 1 = 566
Branch analysis from position: 566
2 jumps found. (Code = 44) Position 1 = 572, Position 2 = 541
Branch analysis from position: 572
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 541
2 jumps found. (Code = 46) Position 1 = 543, Position 2 = 545
Branch analysis from position: 543
2 jumps found. (Code = 46) Position 1 = 546, Position 2 = 552
Branch analysis from position: 546
2 jumps found. (Code = 43) Position 1 = 553, Position 2 = 566
Branch analysis from position: 553
2 jumps found. (Code = 44) Position 1 = 572, Position 2 = 541
Branch analysis from position: 572
Branch analysis from position: 541
Branch analysis from position: 566
Branch analysis from position: 552
Branch analysis from position: 545
Branch analysis from position: 575
Branch analysis from position: 535
Branch analysis from position: 527
Branch analysis from position: 576
2 jumps found. (Code = 43) Position 1 = 597, Position 2 = 598
Branch analysis from position: 597
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 598
Branch analysis from position: 600
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 609
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 73
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 82
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 96
Branch analysis from position: 42
2 jumps found. (Code = 44) Position 1 = 44, Position 2 = 125
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 46, Position 2 = 149
Branch analysis from position: 46
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 174
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 187
Branch analysis from position: 50
2 jumps found. (Code = 44) Position 1 = 52, Position 2 = 213
Branch analysis from position: 52
2 jumps found. (Code = 44) Position 1 = 54, Position 2 = 248
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 261
Branch analysis from position: 56
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 277
Branch analysis from position: 58
2 jumps found. (Code = 44) Position 1 = 60, Position 2 = 292
Branch analysis from position: 60
2 jumps found. (Code = 44) Position 1 = 62, Position 2 = 313
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 64, Position 2 = 473
Branch analysis from position: 64
2 jumps found. (Code = 44) Position 1 = 66, Position 2 = 475
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 68, Position 2 = 514
Branch analysis from position: 68
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 576
Branch analysis from position: 70
2 jumps found. (Code = 44) Position 1 = 72, Position 2 = 600
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 609
Branch analysis from position: 609
Branch analysis from position: 600
Branch analysis from position: 576
Branch analysis from position: 514
Branch analysis from position: 475
Branch analysis from position: 473
Branch analysis from position: 313
Branch analysis from position: 292
Branch analysis from position: 277
Branch analysis from position: 261
Branch analysis from position: 248
Branch analysis from position: 213
Branch analysis from position: 187
Branch analysis from position: 174
Branch analysis from position: 149
Branch analysis from position: 125
Branch analysis from position: 96
Branch analysis from position: 82
Branch analysis from position: 73
Branch analysis from position: 34
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 34
Branch analysis from position: 32
Branch analysis from position: 34
Branch analysis from position: 611
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
filename:       /in/3s3E6
function name:  (null)
number of ops:  615
compiled vars:  !0 = $tpl, !1 = $dirrw, !2 = $htmlchars, !3 = $p, !4 = $asg, !5 = $cv, !6 = $countt, !7 = $files, !8 = $fp, !9 = $handle, !10 = $arrwe, !11 = $fle, !12 = $arrdirs, !13 = $arrfls, !14 = $arrw, !15 = $perms, !16 = $file, !17 = $conf
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN_DIM                                               !0, 'title'
          1        OP_DATA                                                  '%D0%90%D0%B4%D0%BC%D0%B8%D0%BD%D0%BA%D0%B0'
    3     2        FETCH_IS                                         ~19     '_COOKIE'
          3        ISSET_ISEMPTY_DIM_OBJ                         0  ~20     ~19, 'user'
          4      > JMPZ_EX                                          ~20     ~20, ->9
          5    >   FETCH_R                      global              ~21     '_COOKIE'
          6        FETCH_DIM_R                                      ~22     ~21, 'status'
          7        IS_SMALLER_OR_EQUAL                              ~23     ~22, 3
          8        BOOL                                             ~20     ~23
          9    > > JMPZ                                                     ~20, ->611
    4    10    >   ASSIGN_DIM                                               !0, 'menu'
         11        OP_DATA                                                  '%3Ca+href%3D%22build.php%22%3E+BUILD%3C%2Fa%3E%3Cbr%3E%0A%3Ca+href%3D%22admin.php%3Fact%3Dpages%22%3E%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B%3C%2Fa%3E%3Cbr%3E%0A%3Ca+href%3D%22admin.php%3Fact%3Dusers%22%3E%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B8%3C%2Fa%3E%3Cbr%3E%0A%3Ca+href%3D%22admin.php%3Fact%3Dfiles%22%3E%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B%3C%2Fa%3E%3Cbr%3E%0A%3Ca+href%3D%22admin.php%3Fact%3Dsettings%22%3E%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8%3C%2Fa%3E%3Cbr%3E%0A%3Ca+href%3D%22admin.php%3Fact%3Dupload%22%3EUPLOAD%3C%2Fa%3E'
   10    12        DECLARE_FUNCTION                                         'perms'
   13    13        INIT_FCALL                                               'realpath'
         14        FETCH_IS                                         ~25     '_REQUEST'
         15        ISSET_ISEMPTY_DIM_OBJ                         0          ~25, 'dir'
         16      > JMPZ                                                     ~26, ->21
         17    >   FETCH_R                      global              ~27     '_REQUEST'
         18        FETCH_DIM_R                                      ~28     ~27, 'dir'
         19        QM_ASSIGN                                        ~29     ~28
         20      > JMP                                                      ->22
         21    >   QM_ASSIGN                                        ~29     '.'
         22    >   SEND_VAL                                                 ~29
         23        DO_ICALL                                         $30     
         24        CONCAT                                           ~31     $30, '%2F'
         25        ASSIGN                                                   !1, ~31
   14    26        ASSIGN                                                   !2, <array>
   15    27        FETCH_R                      global              ~34     '_REQUEST'
         28        ASSIGN                                                   !3, ~34
   16    29        FETCH_IS                                         ~36     '_GET'
         30        ISSET_ISEMPTY_DIM_OBJ                         0          ~36, 'dir'
         31      > JMPZ                                                     ~37, ->34
         32    >   ASSIGN_DIM                                               !3, 'act'
         33        OP_DATA                                                  'files'
   17    34    >   FETCH_DIM_R                                      ~39     !3, 'act'
         35      > SWITCH_STRING                                            ~39, [ 'recrmdir':->73, 'chmod':->82, 'save':->96, 'edit':->125, 'editstr':->149, 'rename':->174, '%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C':->187, '%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C':->213, '%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C':->248, 'mkdir':->261, 'rmdir':->277, 'mkfile':->292, 'files':->313, 'upload':->473, 'pages':->475, 'users':->514, 'settings':->576, 'conf':->600, ], ->609
   18    36    >   CASE                                                     ~39, 'recrmdir'
         37      > JMPNZ                                                    ~40, ->73
   40    38    >   CASE                                                     ~39, 'chmod'
         39      > JMPNZ                                                    ~40, ->82
   44    40    >   CASE                                                     ~39, 'save'
         41      > JMPNZ                                                    ~40, ->96
   49    42    >   CASE                                                     ~39, 'edit'
         43      > JMPNZ                                                    ~40, ->125
   59    44    >   CASE                                                     ~39, 'editstr'
         45      > JMPNZ                                                    ~40, ->149
   70    46    >   CASE                                                     ~39, 'rename'
         47      > JMPNZ                                                    ~40, ->174
   73    48    >   CASE                                                     ~39, '%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C'
         49      > JMPNZ                                                    ~40, ->187
   80    50    >   CASE                                                     ~39, '%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C'
         51      > JMPNZ                                                    ~40, ->213
   89    52    >   CASE                                                     ~39, '%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C'
         53      > JMPNZ                                                    ~40, ->248
   95    54    >   CASE                                                     ~39, 'mkdir'
         55      > JMPNZ                                                    ~40, ->261
  101    56    >   CASE                                                     ~39, 'rmdir'
         57      > JMPNZ                                                    ~40, ->277
  107    58    >   CASE                                                     ~39, 'mkfile'
         59      > JMPNZ                                                    ~40, ->292
  115    60    >   CASE                                                     ~39, 'files'
         61      > JMPNZ                                                    ~40, ->313
  158    62    >   CASE                                                     ~39, 'upload'
         63      > JMPNZ                                                    ~40, ->473
  170    64    >   CASE                                                     ~39, 'pages'
         65      > JMPNZ                                                    ~40, ->475
  183    66    >   CASE                                                     ~39, 'users'
         67      > JMPNZ                                                    ~40, ->514
  203    68    >   CASE                                                     ~39, 'settings'
         69      > JMPNZ                                                    ~40, ->576
  214    70    >   CASE                                                     ~39, 'conf'
         71      > JMPNZ                                                    ~40, ->600
         72    > > JMP                                                      ->609
   19    73    >   DECLARE_FUNCTION                                         'dir_remove'
   36    74        ECHO                                                     '%3Cdiv+class%3D%22ok%22%3E'
   37    75        INIT_FCALL_BY_NAME                                       'dir_remove'
         76        CHECK_FUNC_ARG                                           
         77        FETCH_DIM_FUNC_ARG                               $41     !3, 'z'
         78        SEND_FUNC_ARG                                            $41
         79        DO_FCALL                                      0          
   38    80        ECHO                                                     '%3C%2Fdiv%3E'
   39    81      > JMP                                                      ->609
   41    82    >   FETCH_DIM_R                                      ~43     !3, 'z'
         83        CONCAT                                           ~44     'chmod%28%27', ~43
         84        CONCAT                                           ~45     ~44, '%27%2C0'
         85        FETCH_DIM_R                                      ~46     !3, 'x'
         86        CONCAT                                           ~47     ~45, ~46
         87        CONCAT                                           ~48     ~47, '%29%3B'
         88        INCLUDE_OR_EVAL                                          ~48, EVAL
   42    89        FETCH_DIM_R                                      ~50     !3, 'z'
         90        CONCAT                                           ~51     '%D0%9F%D1%80%D0%B0%D0%B2%D0%B0+%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D1%8B+', ~50
         91        CONCAT                                           ~52     ~51, '--%3E+'
         92        FETCH_DIM_R                                      ~53     !3, 'x'
         93        CONCAT                                           ~54     ~52, ~53
         94        ECHO                                                     ~54
   43    95      > JMP                                                      ->609
   45    96    >   INIT_FCALL                                               'str_replace'
         97        FETCH_DIM_R                                      ~55     !3, 'r'
         98        SEND_VAL                                                 ~55
         99        FETCH_DIM_R                                      ~56     !3, 't'
        100        SEND_VAL                                                 ~56
        101        INIT_FCALL                                               'implode'
        102        SEND_VAL                                                 '%0A'
        103        INIT_FCALL                                               'array_filter'
        104        FETCH_DIM_R                                      ~57     !3, 's'
        105        SEND_VAL                                                 ~57
        106        DO_ICALL                                         $58     
        107        SEND_VAR                                                 $58
        108        DO_ICALL                                         $59     
        109        SEND_VAR                                                 $59
        110        DO_ICALL                                         $60     
        111        ASSIGN                                                   !4, $60
   46   112        INIT_FCALL                                               'str_replace'
        113        SEND_VAL                                                 '%0A%0A'
        114        SEND_VAL                                                 '%0A'
        115        SEND_VAR                                                 !4
        116        DO_ICALL                                         $62     
        117        ASSIGN                                                   !4, $62
   47   118        INIT_FCALL                                               'file_put_contents'
        119        FETCH_DIM_R                                      ~64     !3, 'a'
        120        SEND_VAL                                                 ~64
        121        SEND_VAR                                                 !4
        122        DO_ICALL                                         $65     
        123        ASSIGN                                                   !5, $65
   48   124      > JMP                                                      ->609
   52   125    >   FETCH_DIM_R                                      ~67     !3, 'z'
        126        CONCAT                                           ~68     '%3C%2Fdiv%3E%3Cform+action%3D%22admin.php%22+method%3D%22post%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22act%22+value%3D%22rename%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22z%22+value%3D%22', ~67
        127        CONCAT                                           ~69     ~68, '%22%3E%3Cbr%3E+%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%3A%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22newname%22+value%3D%22'
        128        INIT_FCALL                                               'basename'
        129        FETCH_DIM_R                                      ~70     !3, 'z'
        130        SEND_VAL                                                 ~70
        131        DO_ICALL                                         $71     
        132        CONCAT                                           ~72     ~69, $71
        133        CONCAT                                           ~73     ~72, '%22%3E%3Cinput+type%3D%22submit%22%3E%3C%2Fform%3E%0A%3Cform+action%3D%22admin.php%22+method%3D%22post%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22act%22+value%3D%22chmod%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22z%22+value%3D%22'
   55   134        FETCH_DIM_R                                      ~74     !3, 'z'
        135        CONCAT                                           ~75     ~73, ~74
        136        CONCAT                                           ~76     ~75, '%22%3E%3Cbr%3E%D0%98%D0%B7%D0%BC.+%D0%BF%D1%80%D0%B0%D0%B2%D0%B0%3A%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22x%22+value%3D%22'
        137        ECHO                                                     ~76
   56   138        INIT_FCALL_BY_NAME                                       'perms'
        139        CHECK_FUNC_ARG                                           
        140        FETCH_DIM_FUNC_ARG                               $77     !3, 'z'
        141        SEND_FUNC_ARG                                            $77
        142        DO_FCALL                                      0          
   57   143        FETCH_DIM_R                                      ~79     !3, 'z'
        144        CONCAT                                           ~80     '%22%3E%3Cinput+type%3D%22submit%22%3E%3C%2Fform%3E%3Cbr%3E%3Ca+href%3D%22admin.php%3Fact%3Deditstr%26z%3D', ~79
        145        CONCAT                                           ~81     ~80, '%22%3E%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%3C%2Fa%3E%3Cbr%3E%3Cbr%3E'
        146        ECHO                                                     ~81
   58   147        INIT_FCALL_BY_NAME                                       'tpl'
        148        DO_FCALL                                      0          
   60   149    >   INIT_FCALL                                               'file'
        150        FETCH_DIM_R                                      ~83     !3, 'z'
        151        SEND_VAL                                                 ~83
        152        DO_ICALL                                         $84     
        153        COUNT                                            ~85     $84
        154        ASSIGN                                                   !6, ~85
   63   155        FETCH_DIM_R                                      ~87     !3, 'z'
        156        CONCAT                                           ~88     '%3C%2Fdiv%3E%3Cform+action%3D%22admin.php%22+method%3D%22post%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22act%22+value%3D%22save%22%3E%0A%3Cinput+type%3D%22textarea%22+value%3D%22', ~87
        157        CONCAT                                           ~89     ~88, '%22+name%3D%22a%22%3E%3Cbr%3E%D0%97%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%3A%3Ctextarea+name%3D%22r%22%3E%3C%2Ftextarea%3E%0A%3Cbr%3E%D0%9D%D0%B0%3A%3Ctextarea+name%3D%22t%22%3E%3C%2Ftextarea%3E%3Cbr%3E%0A%3Ctextarea+name%3D%22s%5B%5D%22+rows%3D%22'
   65   158        CONCAT                                           ~90     ~89, !6
        159        CONCAT                                           ~91     ~90, '%22+cols%3D%2250%22%3E'
        160        INIT_FCALL                                               'strtr'
        161        INIT_FCALL                                               'file_get_contents'
        162        FETCH_DIM_R                                      ~92     !3, 'z'
        163        SEND_VAL                                                 ~92
        164        DO_ICALL                                         $93     
        165        SEND_VAR                                                 $93
        166        SEND_VAR                                                 !2
        167        DO_ICALL                                         $94     
        168        CONCAT                                           ~95     ~91, $94
        169        CONCAT                                           ~96     ~95, '%3C%2Ftextarea%3E%0A%3Cbr%3E%3Cinput+type%3D%22submit%22%3E%3C%2Fform%3E'
        170        ECHO                                                     ~96
   67   171        INIT_FCALL_BY_NAME                                       'tpl'
        172        DO_FCALL                                      0          
   68   173      > JMP                                                      ->609
   71   174    >   INIT_FCALL                                               'rename'
        175        FETCH_DIM_R                                      ~98     !3, 'z'
        176        SEND_VAL                                                 ~98
        177        INIT_FCALL                                               'dirname'
        178        FETCH_DIM_R                                      ~99     !3, 'z'
        179        SEND_VAL                                                 ~99
        180        DO_ICALL                                         $100    
        181        CONCAT                                           ~101    $100, '%2F'
        182        FETCH_DIM_R                                      ~102    !3, 'newname'
        183        CONCAT                                           ~103    ~101, ~102
        184        SEND_VAL                                                 ~103
        185        DO_ICALL                                                 
   72   186      > JMP                                                      ->609
   74   187    >   FETCH_DIM_R                                      ~105    !3, 'file'
        188      > FE_RESET_R                                       $106    ~105, ->211
        189    > > FE_FETCH_R                                               $106, !7, ->211
   75   190    >   INIT_FCALL                                               'rename'
        191        SEND_VAR                                                 !7
        192        INIT_FCALL 

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
287.14 ms | 1428 KiB | 36 Q