nie podałeś przydatnych funkcji, aby to na localu mozna było uruchomić, a na slepo tylko takie coś udało mi się zrobić (nawet nie wiem czy działa)
<?php
private $slashcmds = array( 'items' => array('info'=>'Lista rzeczy.', 'code'=>'$this->put('Lista itemów.', 'info');'), 'clear' => array('info'=>'Czyści ekran', 'code'=>'$this->clear(); $this->put('Maxiks Console', 'important'); $this->put('Wersja '.$this->version, 'info'); $this->put('Wpisz komendę...', 'info'); $this->put('Lista komend: wpisz help lub /help', 'info');'), 'help' => array('info'=>'Wyświetla ten ekran pomocy', 'code'=>'$this->put('Lista dostępnych komend:', 'info'); foreach($this->slashcmds as $name => $deeper_arr){ $this->put('/'.$name.' - '.$deeper['info'], 'info'); }'), 'quit' => array('info'=>'Zamyka konsolę', 'code'=>'$this->put('Do zobaczenia!', 'important');'), 'print_r' => array('info'=>'Wyświetla oczekujące wpisy', 'code'=>'echo '<PRE>'; print_r($_SESSION); echo '</PRE>';'), 'debug' => array('info'=>'Sprawdza poprawność działania konsoli', 'code'=>'$this->put('Debugger', 'important'); $this->put('Test', 'info'); $this->put(session_id(), 'important'); echo '<PRE>'; print_r($_SESSION); echo '</PRE>'; if($_COOKIE['PHPSESSID']==session_id()){ $this->put('Ciastko OK!', 'info'); } else{ $this->put('Ciastko złe', 'error'); }') );
public function parse_cmd_from_array($command)
{
$this->put($command, 'command');
{
eval($this->slashcmds[substr($command, 1)]['code']); } else
{
$this->put('Polecenie nie zostało rozpoznane', 'error');
}
$this->ajax_check();
}
?>
chodzi o to, że pozamieniałem " z tych komend na apostrofy, bo jak miałes " to ten kod juz się wczesniej wykonywał, tzn. przed evalem :/
EDIT:
a mi działa

wywaliłem ten substr, ale ty spowrotem możesz wrzucić, bo ja po prostu nie pisałem `/items` a `items`
<?php
/*wywaliłem substr(..., 1), bo dla mnie było zbedne*/
class test
{
private $slashcmds = array( 'items' => array('info'=>'Lista rzeczy.', 'code'=>'$this->put('Lista itemów.', 'info');'), 'clear' => array('info'=>'Czyści ekran', 'code'=>'$this->clear(); $this->put('Maxiks Console', 'important'); $this->put('Wersja '.$this->version, 'info'); $this->put('Wpisz komendę...', 'info'); $this->put('Lista komend: wpisz help lub /help', 'info');'), 'help' => array('info'=>'Wyświetla ten ekran pomocy', 'code'=>'$this->put('Lista dostępnych komend:', 'info'); foreach($this->slashcmds as $name => $deeper_arr){ $this->put('/'.$name.' - '.$deeper['info'], 'info'); }'), 'quit' => array('info'=>'Zamyka konsolę', 'code'=>'$this->put('Do zobaczenia!', 'important');'), 'print_r' => array('info'=>'Wyświetla oczekujące wpisy', 'code'=>'echo '<PRE>'; print_r($_SESSION); echo '</PRE>';'), 'debug' => array('info'=>'Sprawdza poprawność działania konsoli', 'code'=>'$this->put('Debugger', 'important'); $this->put('Test', 'info'); $this->put(session_id(), 'important'); echo '<PRE>'; print_r($_SESSION); echo '</PRE>'; if($_COOKIE['PHPSESSID']==session_id()){ $this->put('Ciastko OK!', 'info'); } else{ $this->put('Ciastko złe', 'error'); }') );
public function parse_cmd_from_array($command)
{
$this->put($command, 'command');
{
eval($this->slashcmds[$command]['code']); } else
{
$this->put('Polecenie nie zostało rozpoznane', 'error');
}
// $this->ajax_check();
}
public function put($s1, $s2)
{
echo '<b>'.$s2.':</b> '.$s1.'<br/>'; }
}
$oT = new test;
$oT->parse_cmd_from_array('items');
?>
funkcje składowe też sam zrobiłem, ale działa

PS. jakby ktoś nie wierzył to tu jest screen: