Skip to content

Instantly share code, notes, and snippets.

@iegik
Last active May 31, 2023 16:28
Show Gist options
  • Save iegik/1289703 to your computer and use it in GitHub Desktop.
Save iegik/1289703 to your computer and use it in GitHub Desktop.
PHP Interactive Mode (not secure)
<?php
function error($e)
{
switch($e['type'])
{
case E_ERROR: // 1 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-code icon-cog"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_WARNING: // 2 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-code icon-cog"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_PARSE: // 4 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-parse icon-refresh"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_NOTICE: // 8 //
return '<div class="alert alert-notice"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-code icon-cog"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_CORE_ERROR: // 16 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-core icon-heart"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_CORE_WARNING: // 32 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-core icon-heart"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_CORE_ERROR: // 64 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-compile"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_CORE_WARNING: // 128 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-compile"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_USER_ERROR: // 256 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-user"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_USER_WARNING: // 512 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-user"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_USER_NOTICE: // 1024 //
return '<div class="alert alert-notice"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-user"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_STRICT: // 2048 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-strict icon-indent-left"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_RECOVERABLE_ERROR: // 4096 //
return '<div class="alert alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-recoverable icon-share-alt"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_DEPRECATED: // 8192 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-depricated icon-time"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
case E_USER_DEPRECATED: // 16384 //
return '<div class="alert alert-warning"><a class="close" data-dismiss="alert" href="#">&times;</a><p><i class="icon-user-depricated icon-user"></i>'.$e['message'].' on line '.$e['line'].'</p></div>';
}
return "";
}
if(@$s=@$_GET['s']?$_GET['s']:@$_POST['s'] && @$_POST || (@$_GET && @$_GET['embeded']) ){
//require_once 'ChromePhp.php';
if(!$r = eval ("?>$s")){
$e = error_get_last();
echo error($e);
};
}else{?>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="http://iegik.github.com/css/code.css">
<div class="container">
<h1>PHP interpretator</h1>
<textarea id="source" class="php" placeholder="&lt;?='Enter PHP code here';" cols="80" rows="25" style="width:100%;font-family: monospace;"></textarea>
<hr/>
<div id="result">Result will appear here</div>
<hr/>
<pre id="code"><span class="js-comment">/* Hightlited code will appear here */</span></pre>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="http://iegik.github.com/js/hightlighter.min.js"></script>
<script>
$(function () {
String.prototype.escape = function () {
return this
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
;
}
$('#source').on('change', function () {
s = $(this).val()
$("#code").html(s.escape().hightlight());
$.get(document.location.pathname + document.location.search, {
"s": s
}, function (d) {
$("#result").html(d);
});
});
});
</script>
<?php }?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment