Аналог Console от Философа, но не для MODX

Здравствуйте.
Изучаю PHP. Ищу аналог Console. Но у него есть недостаток: маленькое окно для вывода результатов.
Есть ли аналог, с редактором и подстветкой кода? Чтобы я мог загрузить в папку на сервер, запаролить папку и использовать это для обучения.
Anton
08 марта 2017, 16:19
modx.pro
2
1 059
0

Комментарии: 4

Илья Уткин
09 марта 2017, 09:47
3
+6
Создаёшь в папке index.php и открываешь так: s8820.h5.modhost.pro/console/
<?php
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
    @ini_set('display_errors', 1);
    $code = str_replace(array('<?php', '?>'), '', $_POST['code']);
    ob_start();
    $result = eval($code);
    $output = ob_get_contents();
    ob_end_clean();
    if($result){
        $output = $result;
    }
    echo $output;
    die();
}
?><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Console</title>
    <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <style>
        .ace_editor {
            height: 250px !important;
        }
        body {
            padding-bottom: 80px;
        }
    </style>
  </head>

  <body>
    
    <div class="container">
        

        <h1>Console</h1>
        <form action="" class="jumbotron" id="code_form" method="post">
            <textarea class="form-control" name="code" id="code" rows="15"><?php echo "<?php\n"; ?></textarea>
            
            <input type="submit" class="btn btn-lg btn-primary" value="Выполнить" onclick="return run();">
        </form>
        <div id="result"></div>
    </div>

    <script src="https://ace.c9.io/build/src/ace.js"></script>
    <script>
        function run() {
            document.getElementById("result").innerHTML = '<img src="http://downloads.pcauthority.com.au/images/spinner.gif">';
            $.ajax({
                url: document.location.href,
                type: "POST",
                dataType: "html",
                data: {code: window.editor.getValue()},
                success: function(response) {
                    $("#result").html(response);
                },
                error: function(response) {
                    $("#result").html("Ошибка сервера");
                }
             });
             return false;
        }
        window.onkeydown = function(e) {
            if (e.ctrlKey) {
                if (e.keyCode == 13) {
                    run();
                }
            }
        };
        window.editor = ace.edit("code");
        window.editor.setTheme("ace/theme/monokai");
        window.editor.getSession().setMode("ace/mode/php");
        window.editor.gotoLine(2);
        window.editor.focus();
    </script>
  </body>
</html>
    Николай
    09 марта 2017, 10:24
    0
    Здорово!

    Я же правильно понимаю, что на боевом сайте это огромная дыра и использовать только на тестовых версиях можно?
      Илья Уткин
      09 марта 2017, 10:26
      +2
      Конечно.
        Anton
        28 марта 2017, 13:52
        0
        Только сейчас увидел, спасибо!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4