downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

ncurses_getmaxyx> <ncurses_flushinp
[edit] Last updated: Fri, 24 May 2013

view this page in

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getchLit un caractère sur le clavier

Description

int ncurses_getch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



ncurses_getmaxyx> <ncurses_flushinp
[edit] Last updated: Fri, 24 May 2013
 
add a note add a note User Contributed Notes ncurses_getch - [4 notes]
up
0
petr at hroch dot info
6 years ago
While function ncurses_nodelay() is still not implemented and if you need a non-blocking getch,
following code might help.

<?php
$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
}
?>
up
0
php at kormoc dot com
7 years ago
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.
up
0
joeldegan AT yahoo.com
10 years ago
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.
up
0
pablorNOSPAM at nkstudios dot net
10 years ago
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();

?>

 
show source | credits | sitemap | contact | advertising | mirror sites