1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<?php
$f = <<<EOF
PHP-Shell - Version %s%s
(c) 2006, Jan Kneschke <jan@kneschke.de>
>> use '?' to open the inline help
EOF;
printf($f,
$__shell->getVersion(),
$__shell->hasReadline() ? ', with readline() support' : '');
unset($f);
print $__shell_exts->colour->getColour("default");
while($__shell->input()) {
if ($__shell_exts->autoload->isAutoloadEnabled() && !function_exists('__autoload')) {
/**
* default autoloader
*
* If a class doesn't exist try to load it by guessing the filename
* class PHP_Shell should be located in PHP/Shell.php.
*
* you can set your own autoloader by defining __autoload() before including
* this file
*
* @param string $classname name of the class
*/
function __autoload($classname) {
global $__shell_exts;
if ($__shell_exts->autoload_debug->isAutoloadDebug()) {
print str_repeat(".", $__shell_exts->autoload_debug->incAutoloadDepth())." -> autoloading $classname".PHP_EOL;
}
include_once str_replace('_', '/', $classname).'.php';
if ($__shell_exts->autoload_debug->isAutoloadDebug()) {
print str_repeat(".", $__shell_exts->autoload_debug->decAutoloadDepth())." <- autoloading $classname".PHP_EOL;
}
}
}
try {
$__shell_exts->exectime->startParseTime();
if ($__shell->parse() == 0) {
## we have a full command, execute it
$__shell_exts->exectime->startExecTime();
$__shell_retval = eval($__shell->getCode());
if (isset($__shell_retval)) {
print $__shell_exts->colour->getColour("value");
if (function_exists("__shell_print_var")) {
__shell_print_var($__shell,$__shell_retval, $__shell_exts->verboseprint->isVerbose());
} else {
var_export($__shell_retval);
}
}
## cleanup the variable namespace
unset($__shell_retval);
$__shell->resetCode();
}
} catch(Exception $__shell_exception) {
print $__shell_exts->colour->getColour("exception");
printf('%s (code: %d) got thrown'.PHP_EOL, get_class($__shell_exception), $__shell_exception->getCode());
print $__shell_exception;
$__shell->resetCode();
## cleanup the variable namespace
unset($__shell_exception);
}
print $__shell_exts->colour->getColour("default");
$__shell_exts->exectime->stopTime();
if ($__shell_exts->exectime->isShow()) {
printf(" (parse: %.4fs, exec: %.4fs)",
$__shell_exts->exectime->getParseTime(),
$__shell_exts->exectime->getExecTime()
);
}
}
print $__shell_exts->colour->getColour("reset");
|