In reply to petr at hroch dot info
You can use
ncurses_timeout(0);
ncurses_getch() will return -1 if no data is available
ncurses_getch
(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)
ncurses_getch — Leer un caracter desde el teclado
Descripción
int ncurses_getch
( void
)
Warning
Esta función ha sido declarada EXPERIMENTAL. Su comportamiento, su nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Use esta función bajo su propio riesgo.
Warning
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
Quis _ Omicidio _ NL
20-Dec-2007 06:06
petr at hroch dot info
14-Nov-2006 10:11
While function ncurses_nodelay() is still not implemented and if you need a non-blocking getch,
following code might help.
$init = ncurses_init();
$full = ncurses_newwin (0,0,0,0);
ncurses_wborder($full,0,0,0,0,0,0,0,0);
ncurses_wrefresh($full);
$running = true;
$fp = fopen("php://stdin","r"); //open direct input stream for reading
stream_set_blocking($fp,0); //set non-blocking mode
while ($running) {
while (($buf = fgets($fp, 4096)) != false) { //fgets is required if we want to handle escape sequenced keys
$buffer .= $buf;
}
if ($buffer != "") {
switch ($buffer) {
case " ": { //exit on space key
ncurses_end();
exit;
}
default: {
ncurses_mvwaddstr($full,2,2,"$buffer"); //display input
}
}
$buffer = ""; //empty buffer
}
// You can do something interesting here, while we're not waiting for an input
ncurses_mvwaddstr($full,4,4,microtime(true));
ncurses_wrefresh($full);
usleep(1); //reduce cpu usage
}
php at kormoc dot com
22-Nov-2005 11:45
After banging my head over this for awhile, I discovered, you must use ncurses_keypad($window, true); to enable the arrow keys and f keys to work correctly.
joeldegan AT yahoo.com
16-Dec-2002 08:29
When using getch to capture KEY_* events remember that the keypad is arranged like this:
+-----+------+-------+
| A1 | up | A3 |
+-----+------+-------+
|left | B2 | right |
+-----+------+-------+
| C1 | down | C3 |
+-----+------+-------+
You use has_key to capture these and act upon them.
man curs_getch for more info.
pablorNOSPAM at nkstudios dot net
13-Sep-2002 08:40
A custom php ncurses_getstr function..
<?php
function ncurses_getstr($strlen){
for ($x=0;$x<$strlen;$x++){
$string .= chr(ncurses_getch());
}
return $string;
}
ncurses_init();
ncurses_addstr(ncurses_getstr(6));
ncurses_refresh();
ncurses_getch();
ncurses_end();
?>
