| Warning | 
| This extension is EXPERIMENTAL. The behaviour of this extension, including the names of its functions, and anything else documented about this extension may change in a future release of PHP without notice. Be warned and use this extension at your own risk. | 
ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping.
Ncurses is available for the following platforms:
AIX
BeOS
Cygwin
Digital Unix (aka OSF1)
FreeBSD
GNU/Linux
HPUX
IRIX
OS/2
SCO OpenServer
Solaris
SunOS
You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.
To get these functions to work, you have to compile the CGI version of PHP with --with-ncurses.
On error ncurses functions return NCURSES_ERR.
Table 1. ncurses color constants
| constant | meaning | 
|---|---|
| NCURSES_COLOR_BLACK | no color (black) | 
| NCURSES_COLOR_WHITE | white | 
| NCURSES_COLOR_RED | red - supported when terminal is in color mode | 
| NCURSES_COLOR_GREEN | green - supported when terminal is in color mod | 
| NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mod | 
| NCURSES_COLOR_BLUE | blue - supported when terminal is in color mod | 
| NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mod | 
| NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mod | 
Table 2. ncurses key constants
| constant | meaning | 
|---|---|
| NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64 | 
| NCURSES_KEY_DOWN | down arrow | 
| NCURSES_KEY_UP | up arrow | 
| NCURSES_KEY_LEFT | left arrow | 
| NCURSES_KEY_RIGHT | right arrow | 
| NCURSES_KEY_HOME | home key (upward+left arrow) | 
| NCURSES_KEY_BACKSPACE | backspace | 
| NCURSES_KEY_DL | delete line | 
| NCURSES_KEY_IL | insert line | 
| NCURSES_KEY_DC | delete character | 
| NCURSES_KEY_IC | insert char or enter insert mode | 
| NCURSES_KEY_EIC | exit insert char mode | 
| NCURSES_KEY_CLEAR | clear screen | 
| NCURSES_KEY_EOS | clear to end of screen | 
| NCURSES_KEY_EOL | clear to end of line | 
| NCURSES_KEY_SF | scroll one line forward | 
| NCURSES_KEY_SR | scroll one line backward | 
| NCURSES_KEY_NPAGE | next page | 
| NCURSES_KEY_PPAGE | previous page | 
| NCURSES_KEY_STAB | set tab | 
| NCURSES_KEY_CTAB | clear tab | 
| NCURSES_KEY_CATAB | clear all tabs | 
| NCURSES_KEY_SRESET | soft (partial) reset | 
| NCURSES_KEY_RESET | reset or hard reset | 
| NCURSES_KEY_PRINT | |
| NCURSES_KEY_LL | lower left | 
| NCURSES_KEY_A1 | upper left of keypad | 
| NCURSES_KEY_A3 | upper right of keypad | 
| NCURSES_KEY_B2 | center of keypad | 
| NCURSES_KEY_C1 | lower left of keypad | 
| NCURSES_KEY_C3 | lower right of keypad | 
| NCURSES_KEY_BTAB | back tab | 
| NCURSES_KEY_BEG | beginning | 
| NCURSES_KEY_CANCEL | cancel | 
| NCURSES_KEY_CLOSE | close | 
| NCURSES_KEY_COMMAND | cmd (command) | 
| NCURSES_KEY_COPY | copy | 
| NCURSES_KEY_CREATE | create | 
| NCURSES_KEY_END | end | 
| NCURSES_KEY_EXIT | exit | 
| NCURSES_KEY_FIND | find | 
| NCURSES_KEY_HELP | help | 
| NCURSES_KEY_MARK | mark | 
| NCURSES_KEY_MESSAGE | message | 
| NCURSES_KEY_MOVE | move | 
| NCURSES_KEY_NEXT | next | 
| NCURSES_KEY_OPEN | open | 
| NCURSES_KEY_OPTIONS | options | 
| NCURSES_KEY_PREVIOUS | previous | 
| NCURSES_KEY_REDO | redo | 
| NCURSES_KEY_REFERENCE | ref (reference) | 
| NCURSES_KEY_REFRESH | refresh | 
| NCURSES_KEY_REPLACE | replace | 
| NCURSES_KEY_RESTART | restart | 
| NCURSES_KEY_RESUME | resume | 
| NCURSES_KEY_SAVE | save | 
| NCURSES_KEY_SBEG | shiftet beg (beginning) | 
| NCURSES_KEY_SCANCEL | shifted cancel | 
| NCURSES_KEY_SCOMMAND | shifted command | 
| NCURSES_KEY_SCOPY | shifted copy | 
| NCURSES_KEY_SCREATE | shifted create | 
| NCURSES_KEY_SDC | shifted delete char | 
| NCURSES_KEY_SDL | shifted delete line | 
| NCURSES_KEY_SELECT | select | 
| NCURSES_KEY_SEND | shifted end | 
| NCURSES_KEY_SEOL | shifted end of line | 
| NCURSES_KEY_SEXIT | shifted exit | 
| NCURSES_KEY_SFIND | shifted find | 
| NCURSES_KEY_SHELP | shifted help | 
| NCURSES_KEY_SHOME | shifted home | 
| NCURSES_KEY_SIC | shifted input | 
| NCURSES_KEY_SLEFT | shifted left arrow | 
| NCURSES_KEY_SMESSAGE | shifted message | 
| NCURSES_KEY_SMOVE | shifted move | 
| NCURSES_KEY_SNEXT | shifted next | 
| NCURSES_KEY_SOPTIONS | shifted options | 
| NCURSES_KEY_SPREVIOUS | shifted previous | 
| NCURSES_KEY_SPRINT | shifted print | 
| NCURSES_KEY_SREDO | shifted redo | 
| NCURSES_KEY_SREPLACE | shifted replace | 
| NCURSES_KEY_SRIGHT | shifted right arrow | 
| NCURSES_KEY_SRSUME | shifted resume | 
| NCURSES_KEY_SSAVE | shifted save | 
| NCURSES_KEY_SSUSPEND | shifted suspend | 
| NCURSES_KEY_UNDO | undo | 
| NCURSES_KEY_MOUSE | mouse event has occured | 
| NCURSES_KEY_MAX | maximum key value | 
Table 3. mouse constants
| Constant | meaning | 
|---|---|
| NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released | 
| NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed | 
| NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked | 
| NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked | 
| NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked | 
| NCURSES_BUTTON_CTRL | ctrl pressed during click | 
| NCURSES_BUTTON_SHIFT | shift pressed during click | 
| NCURSES_BUTTON_ALT | alt pressed during click | 
| NCURSES_ALL_MOUSE_EVENTS | report all mouse events | 
| NCURSES_REPORT_MOUSE_POSITION | report mouse position |