3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tpl['title']='Админка'; include 'func.php'; 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 = 6, Position 2 = 10
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 612
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 22
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 35
Branch analysis from position: 33
20 jumps found. (Code = 188) Position 1 = 74, Position 2 = 83, Position 3 = 97, Position 4 = 126, Position 5 = 150, Position 6 = 175, Position 7 = 188, Position 8 = 214, Position 9 = 249, Position 10 = 262, Position 11 = 278, Position 12 = 293, Position 13 = 314, Position 14 = 474, Position 15 = 476, Position 16 = 515, Position 17 = 577, Position 18 = 601, Position 19 = 610, Position 20 = 37
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
1 jumps found. (Code = 42) Position 1 = 613
Branch analysis from position: 613
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 97
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 126
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 150
Branch analysis from position: 175
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 188
2 jumps found. (Code = 77) Position 1 = 190, Position 2 = 212
Branch analysis from position: 190
2 jumps found. (Code = 78) Position 1 = 191, Position 2 = 212
Branch analysis from position: 191
2 jumps found. (Code = 43) Position 1 = 210, Position 2 = 211
Branch analysis from position: 210
1 jumps found. (Code = 42) Position 1 = 190
Branch analysis from position: 190
Branch analysis from position: 211
Branch analysis from position: 212
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 212
Branch analysis from position: 214
2 jumps found. (Code = 77) Position 1 = 216, Position 2 = 247
Branch analysis from position: 216
2 jumps found. (Code = 78) Position 1 = 217, Position 2 = 247
Branch analysis from position: 217
2 jumps found. (Code = 43) Position 1 = 236, Position 2 = 243
Branch analysis from position: 236
1 jumps found. (Code = 42) Position 1 = 246
Branch analysis from position: 246
1 jumps found. (Code = 42) Position 1 = 216
Branch analysis from position: 216
Branch analysis from position: 243
1 jumps found. (Code = 42) Position 1 = 216
Branch analysis from position: 216
Branch analysis from position: 247
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 247
Branch analysis from position: 249
2 jumps found. (Code = 77) Position 1 = 251, Position 2 = 260
Branch analysis from position: 251
2 jumps found. (Code = 78) Position 1 = 252, Position 2 = 260
Branch analysis from position: 252
2 jumps found. (Code = 43) Position 1 = 256, Position 2 = 259
Branch analysis from position: 256
1 jumps found. (Code = 42) Position 1 = 251
Branch analysis from position: 251
Branch analysis from position: 259
Branch analysis from position: 260
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 260
Branch analysis from position: 262
2 jumps found. (Code = 43) Position 1 = 268, Position 2 = 273
Branch analysis from position: 268
1 jumps found. (Code = 42) Position 1 = 277
Branch analysis from position: 277
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 273
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 278
2 jumps found. (Code = 43) Position 1 = 283, Position 2 = 288
Branch analysis from position: 283
1 jumps found. (Code = 42) Position 1 = 292
Branch analysis from position: 292
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 288
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 293
2 jumps found. (Code = 43) Position 1 = 298, Position 2 = 303
Branch analysis from position: 298
1 jumps found. (Code = 42) Position 1 = 313
Branch analysis from position: 313
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 303
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 314
2 jumps found. (Code = 43) Position 1 = 320, Position 2 = 473
Branch analysis from position: 320
1 jumps found. (Code = 42) Position 1 = 335
Branch analysis from position: 335
2 jumps found. (Code = 44) Position 1 = 341, Position 2 = 323
Branch analysis from position: 341
2 jumps found. (Code = 43) Position 1 = 344, Position 2 = 370
Branch analysis from position: 344
2 jumps found. (Code = 77) Position 1 = 348, Position 2 = 368
Branch analysis from position: 348
2 jumps found. (Code = 78) Position 1 = 349, Position 2 = 368
Branch analysis from position: 349
1 jumps found. (Code = 42) Position 1 = 348
Branch analysis from position: 348
Branch analysis from position: 368
1 jumps found. (Code = 42) Position 1 = 371
Branch analysis from position: 371
2 jumps found. (Code = 43) Position 1 = 374, Position 2 = 468
Branch analysis from position: 374
2 jumps found. (Code = 77) Position 1 = 379, Position 2 = 466
Branch analysis from position: 379
2 jumps found. (Code = 78) Position 1 = 380, Position 2 = 466
Branch analysis from position: 380
2 jumps found. (Code = 43) Position 1 = 395, Position 2 = 402
Branch analysis from position: 395
2 jumps found. (Code = 43) Position 1 = 417, Position 2 = 424
Branch analysis from position: 417
1 jumps found. (Code = 42) Position 1 = 459
Branch analysis from position: 459
1 jumps found. (Code = 42) Position 1 = 379
Branch analysis from position: 379
Branch analysis from position: 424
2 jumps found. (Code = 43) Position 1 = 430, Position 2 = 442
Branch analysis from position: 430
1 jumps found. (Code = 42) Position 1 = 459
Branch analysis from position: 459
Branch analysis from position: 442
2 jumps found. (Code = 43) Position 1 = 448, Position 2 = 459
Branch analysis from position: 448
1 jumps found. (Code = 42) Position 1 = 379
Branch analysis from position: 379
Branch analysis from position: 459
Branch analysis from position: 402
Branch analysis from position: 466
1 jumps found. (Code = 42) Position 1 = 469
Branch analysis from position: 469
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 466
Branch analysis from position: 468
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 368
Branch analysis from position: 370
2 jumps found. (Code = 43) Position 1 = 374, Position 2 = 468
Branch analysis from position: 374
Branch analysis from position: 468
Branch analysis from position: 323
2 jumps found. (Code = 43) Position 1 = 325, Position 2 = 335
Branch analysis from position: 325
2 jumps found. (Code = 43) Position 1 = 330, Position 2 = 333
Branch analysis from position: 330
1 jumps found. (Code = 42) Position 1 = 335
Branch analysis from position: 335
Branch analysis from position: 333
2 jumps found. (Code = 44) Position 1 = 341, Position 2 = 323
Branch analysis from position: 341
Branch analysis from position: 323
Branch analysis from position: 335
Branch analysis from position: 473
Branch analysis from position: 474
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 476
2 jumps found. (Code = 43) Position 1 = 481, Position 2 = 514
Branch analysis from position: 481
1 jumps found. (Code = 42) Position 1 = 505
Branch analysis from position: 505
2 jumps found. (Code = 44) Position 1 = 511, Position 2 = 482
Branch analysis from position: 511
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 482
2 jumps found. (Code = 46) Position 1 = 484, Position 2 = 486
Branch analysis from position: 484
2 jumps found. (Code = 46) Position 1 = 487, Position 2 = 493
Branch analysis from position: 487
2 jumps found. (Code = 43) Position 1 = 494, Position 2 = 505
Branch analysis from position: 494
2 jumps found. (Code = 44) Position 1 = 511, Position 2 = 482
Branch analysis from position: 511
Branch analysis from position: 482
Branch analysis from position: 505
Branch analysis from position: 493
Branch analysis from position: 486
Branch analysis from position: 514
Branch analysis from position: 515
2 jumps found. (Code = 43) Position 1 = 518, Position 2 = 528
Branch analysis from position: 518
2 jumps found. (Code = 43) Position 1 = 531, Position 2 = 536
Branch analysis from position: 531
2 jumps found. (Code = 43) Position 1 = 541, Position 2 = 576
Branch analysis from position: 541
1 jumps found. (Code = 42) Position 1 = 567
Branch analysis from position: 567
2 jumps found. (Code = 44) Position 1 = 573, Position 2 = 542
Branch analysis from position: 573
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 542
2 jumps found. (Code = 46) Position 1 = 544, Position 2 = 546
Branch analysis from position: 544
2 jumps found. (Code = 46) Position 1 = 547, Position 2 = 553
Branch analysis from position: 547
2 jumps found. (Code = 43) Position 1 = 554, Position 2 = 567
Branch analysis from position: 554
2 jumps found. (Code = 44) Position 1 = 573, Position 2 = 542
Branch analysis from position: 573
Branch analysis from position: 542
Branch analysis from position: 567
Branch analysis from position: 553
Branch analysis from position: 546
Branch analysis from position: 576
Branch analysis from position: 536
Branch analysis from position: 528
Branch analysis from position: 577
2 jumps found. (Code = 43) Position 1 = 598, Position 2 = 599
Branch analysis from position: 598
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 599
Branch analysis from position: 601
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 610
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 74
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 83
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 97
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 45, Position 2 = 126
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 150
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 175
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 188
Branch analysis from position: 51
2 jumps found. (Code = 44) Position 1 = 53, Position 2 = 214
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 55, Position 2 = 249
Branch analysis from position: 55
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 262
Branch analysis from position: 57
2 jumps found. (Code = 44) Position 1 = 59, Position 2 = 278
Branch analysis from position: 59
2 jumps found. (Code = 44) Position 1 = 61, Position 2 = 293
Branch analysis from position: 61
2 jumps found. (Code = 44) Position 1 = 63, Position 2 = 314
Branch analysis from position: 63
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 474
Branch analysis from position: 65
2 jumps found. (Code = 44) Position 1 = 67, Position 2 = 476
Branch analysis from position: 67
2 jumps found. (Code = 44) Position 1 = 69, Position 2 = 515
Branch analysis from position: 69
2 jumps found. (Code = 44) Position 1 = 71, Position 2 = 577
Branch analysis from position: 71
2 jumps found. (Code = 44) Position 1 = 73, Position 2 = 601
Branch analysis from position: 73
1 jumps found. (Code = 42) Position 1 = 610
Branch analysis from position: 610
Branch analysis from position: 601
Branch analysis from position: 577
Branch analysis from position: 515
Branch analysis from position: 476
Branch analysis from position: 474
Branch analysis from position: 314
Branch analysis from position: 293
Branch analysis from position: 278
Branch analysis from position: 262
Branch analysis from position: 249
Branch analysis from position: 214
Branch analysis from position: 188
Branch analysis from position: 175
Branch analysis from position: 150
Branch analysis from position: 126
Branch analysis from position: 97
Branch analysis from position: 83
Branch analysis from position: 74
Branch analysis from position: 35
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 35
Branch analysis from position: 33
Branch analysis from position: 35
Branch analysis from position: 612
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
filename:       /in/qbRm7
function name:  (null)
number of ops:  616
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        INCLUDE_OR_EVAL                                          'func.php', INCLUDE
    4     3        FETCH_IS                                         ~20     '_COOKIE'
          4        ISSET_ISEMPTY_DIM_OBJ                         0  ~21     ~20, 'user'
          5      > JMPZ_EX                                          ~21     ~21, ->10
          6    >   FETCH_R                      global              ~22     '_COOKIE'
          7        FETCH_DIM_R                                      ~23     ~22, 'status'
          8        IS_SMALLER_OR_EQUAL                              ~24     ~23, 3
          9        BOOL                                             ~21     ~24
         10    > > JMPZ                                                     ~21, ->612
    5    11    >   ASSIGN_DIM                                               !0, 'menu'
         12        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'
   11    13        DECLARE_FUNCTION                                         'perms'
   14    14        INIT_FCALL                                               'realpath'
         15        FETCH_IS                                         ~26     '_REQUEST'
         16        ISSET_ISEMPTY_DIM_OBJ                         0          ~26, 'dir'
         17      > JMPZ                                                     ~27, ->22
         18    >   FETCH_R                      global              ~28     '_REQUEST'
         19        FETCH_DIM_R                                      ~29     ~28, 'dir'
         20        QM_ASSIGN                                        ~30     ~29
         21      > JMP                                                      ->23
         22    >   QM_ASSIGN                                        ~30     '.'
         23    >   SEND_VAL                                                 ~30
         24        DO_ICALL                                         $31     
         25        CONCAT                                           ~32     $31, '%2F'
         26        ASSIGN                                                   !1, ~32
   15    27        ASSIGN                                                   !2, <array>
   16    28        FETCH_R                      global              ~35     '_REQUEST'
         29        ASSIGN                                                   !3, ~35
   17    30        FETCH_IS                                         ~37     '_GET'
         31        ISSET_ISEMPTY_DIM_OBJ                         0          ~37, 'dir'
         32      > JMPZ                                                     ~38, ->35
         33    >   ASSIGN_DIM                                               !3, 'act'
         34        OP_DATA                                                  'files'
   18    35    >   FETCH_DIM_R                                      ~40     !3, 'act'
         36      > SWITCH_STRING                                            ~40, [ 'recrmdir':->74, 'chmod':->83, 'save':->97, 'edit':->126, 'editstr':->150, 'rename':->175, '%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C':->188, '%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C':->214, '%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C':->249, 'mkdir':->262, 'rmdir':->278, 'mkfile':->293, 'files':->314, 'upload':->474, 'pages':->476, 'users':->515, 'settings':->577, 'conf':->601, ], ->610
   19    37    >   CASE                                                     ~40, 'recrmdir'
         38      > JMPNZ                                                    ~41, ->74
   41    39    >   CASE                                                     ~40, 'chmod'
         40      > JMPNZ                                                    ~41, ->83
   45    41    >   CASE                                                     ~40, 'save'
         42      > JMPNZ                                                    ~41, ->97
   50    43    >   CASE                                                     ~40, 'edit'
         44      > JMPNZ                                                    ~41, ->126
   60    45    >   CASE                                                     ~40, 'editstr'
         46      > JMPNZ                                                    ~41, ->150
   71    47    >   CASE                                                     ~40, 'rename'
         48      > JMPNZ                                                    ~41, ->175
   74    49    >   CASE                                                     ~40, '%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C'
         50      > JMPNZ                                                    ~41, ->188
   81    51    >   CASE                                                     ~40, '%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C'
         52      > JMPNZ                                                    ~41, ->214
   90    53    >   CASE                                                     ~40, '%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C'
         54      > JMPNZ                                                    ~41, ->249
   96    55    >   CASE                                                     ~40, 'mkdir'
         56      > JMPNZ                                                    ~41, ->262
  102    57    >   CASE                                                     ~40, 'rmdir'
         58      > JMPNZ                                                    ~41, ->278
  108    59    >   CASE                                                     ~40, 'mkfile'
         60      > JMPNZ                                                    ~41, ->293
  116    61    >   CASE                                                     ~40, 'files'
         62      > JMPNZ                                                    ~41, ->314
  159    63    >   CASE                                                     ~40, 'upload'
         64      > JMPNZ                                                    ~41, ->474
  171    65    >   CASE                                                     ~40, 'pages'
         66      > JMPNZ                                                    ~41, ->476
  184    67    >   CASE                                                     ~40, 'users'
         68      > JMPNZ                                                    ~41, ->515
  204    69    >   CASE                                                     ~40, 'settings'
         70      > JMPNZ                                                    ~41, ->577
  215    71    >   CASE                                                     ~40, 'conf'
         72      > JMPNZ                                                    ~41, ->601
         73    > > JMP                                                      ->610
   20    74    >   DECLARE_FUNCTION                                         'dir_remove'
   37    75        ECHO                                                     '%3Cdiv+class%3D%22ok%22%3E'
   38    76        INIT_FCALL_BY_NAME                                       'dir_remove'
         77        CHECK_FUNC_ARG                                           
         78        FETCH_DIM_FUNC_ARG                               $42     !3, 'z'
         79        SEND_FUNC_ARG                                            $42
         80        DO_FCALL                                      0          
   39    81        ECHO                                                     '%3C%2Fdiv%3E'
   40    82      > JMP                                                      ->610
   42    83    >   FETCH_DIM_R                                      ~44     !3, 'z'
         84        CONCAT                                           ~45     'chmod%28%27', ~44
         85        CONCAT                                           ~46     ~45, '%27%2C0'
         86        FETCH_DIM_R                                      ~47     !3, 'x'
         87        CONCAT                                           ~48     ~46, ~47
         88        CONCAT                                           ~49     ~48, '%29%3B'
         89        INCLUDE_OR_EVAL                                          ~49, EVAL
   43    90        FETCH_DIM_R                                      ~51     !3, 'z'
         91        CONCAT                                           ~52     '%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+', ~51
         92        CONCAT                                           ~53     ~52, '--%3E+'
         93        FETCH_DIM_R                                      ~54     !3, 'x'
         94        CONCAT                                           ~55     ~53, ~54
         95        ECHO                                                     ~55
   44    96      > JMP                                                      ->610
   46    97    >   INIT_FCALL                                               'str_replace'
         98        FETCH_DIM_R                                      ~56     !3, 'r'
         99        SEND_VAL                                                 ~56
        100        FETCH_DIM_R                                      ~57     !3, 't'
        101        SEND_VAL                                                 ~57
        102        INIT_FCALL                                               'implode'
        103        SEND_VAL                                                 '%0A'
        104        INIT_FCALL                                               'array_filter'
        105        FETCH_DIM_R                                      ~58     !3, 's'
        106        SEND_VAL                                                 ~58
        107        DO_ICALL                                         $59     
        108        SEND_VAR                                                 $59
        109        DO_ICALL                                         $60     
        110        SEND_VAR                                                 $60
        111        DO_ICALL                                         $61     
        112        ASSIGN                                                   !4, $61
   47   113        INIT_FCALL                                               'str_replace'
        114        SEND_VAL                                                 '%0A%0A'
        115        SEND_VAL                                                 '%0A'
        116        SEND_VAR                                                 !4
        117        DO_ICALL                                         $63     
        118        ASSIGN                                                   !4, $63
   48   119        INIT_FCALL                                               'file_put_contents'
        120        FETCH_DIM_R                                      ~65     !3, 'a'
        121        SEND_VAL                                                 ~65
        122        SEND_VAR                                                 !4
        123        DO_ICALL                                         $66     
        124        ASSIGN                                                   !5, $66
   49   125      > JMP                                                      ->610
   53   126    >   FETCH_DIM_R                                      ~68     !3, 'z'
        127        CONCAT                                           ~69     '%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', ~68
        128        CONCAT                                           ~70     ~69, '%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'
        129        INIT_FCALL                                               'basename'
        130        FETCH_DIM_R                                      ~71     !3, 'z'
        131        SEND_VAL                                                 ~71
        132        DO_ICALL                                         $72     
        133        CONCAT                                           ~73     ~70, $72
        134        CONCAT                                           ~74     ~73, '%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'
   56   135        FETCH_DIM_R                                      ~75     !3, 'z'
        136        CONCAT                                           ~76     ~74, ~75
        137        CONCAT                                           ~77     ~76, '%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'
        138        ECHO                                                     ~77
   57   139        INIT_FCALL_BY_NAME                                       'perms'
        140        CHECK_FUNC_ARG                                           
        141        FETCH_DIM_FUNC_ARG                               $78     !3, 'z'
        142        SEND_FUNC_ARG                                            $78
        143        DO_FCALL                                      0          
   58   144        FETCH_DIM_R                                      ~80     !3, 'z'
        145        CONCAT                                           ~81     '%22%3E%3Cinput+type%3D%22submit%22%3E%3C%2Fform%3E%3Cbr%3E%3Ca+href%3D%22admin.php%3Fact%3Deditstr%26z%3D', ~80
        146        CONCAT                                           ~82     ~81, '%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'
        147        ECHO                                                     ~82
   59   148        INIT_FCALL_BY_NAME                                       'tpl'
        149        DO_FCALL                                      0          
   61   150    >   INIT_FCALL                                               'file'
        151        FETCH_DIM_R                                      ~84     !3, 'z'
        152        SEND_VAL                                                 ~84
        153        DO_ICALL                                         $85     
        154        COUNT                                            ~86     $85
        155        ASSIGN                                                   !6, ~86
   64   156        FETCH_DIM_R                                      ~88     !3, 'z'
        157        CONCAT                                           ~89     '%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', ~88
        158        CONCAT                                           ~90     ~89, '%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'
   66   159        CONCAT                                           ~91     ~90, !6
        160        CONCAT                                           ~92     ~91, '%22+cols%3D%2250%22%3E'
        161        INIT_FCALL                                               'strtr'
        162        INIT_FCALL                                               'file_get_contents'
        163        FETCH_DIM_R                                      ~93     !3, 'z'
        164        SEND_VAL                                                 ~93
        165        DO_ICALL                                         $94     
        166        SEND_VAR                                                 $94
        167        SEND_VAR                                                 !2
        168        DO_ICALL                                         $95     
        169        CONCAT                                           ~96     ~92, $95
        170        CONCAT                                           ~97     ~96, '%3C%2Ftextarea%3E%0A%3Cbr%3E%3Cinput+type%3D%22submit%22%3E%3C%2Fform%3E'
        171        ECHO                                                     ~97
   68   172        INIT_FCALL_BY_NAME                                       'tpl'
        173        DO_FCALL                                      0          
   69   174      > JMP                                                      ->610
   72   175    >   INIT_FCALL                                               'rename'
        176        FETCH_DIM_R                                      ~99     !3, 'z'
        177        SEND_VAL                                                 ~99
        178        INIT_FCALL                                               'dirname'
        179        FETCH_DIM_R                                      ~100    !3, 'z'
        180        SEND_VAL                                                 ~100
        181        DO_ICALL                                         $101    
        182        CONCAT                                           ~102    $101, '%2F'
        183        FETCH_DIM_R                                      ~103    !3, 'newname'
        184        CONCAT                                           ~104    ~102, ~103
        185        SEND_VAL                                                 ~104
        186        DO_ICALL                                                 
   73   187      > JMP                                                      ->610
   75   188    >   FETCH_DIM_R                                      ~106    !3, 'file'
        189      > FE_RESET_R                                       $107    ~106, ->212
        190    > > FE_FETCH_R                                               $107, !7, ->212
   76   191    >   INIT_FCALL                                               'rename'
        1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
176.95 ms | 1433 KiB | 35 Q