Manuel PHP
Précédent |  | Suivant

# LXXIII. Fonctions de contrôle d'écran de terminal

# Introduction

ncurses (new curses, les nouveaux curseurs) sont une émulation libère des curseurs du System V Rel 4.0 (et plus récente). Ils utilisent le format terminfo, supportent les pavés numériques, les couleurs, les colorations multiples, les caractères de formulaire et les touches de fonctions. De part la nature intéractive de cette bibliothèque, il est hors de question de l'utiliser pour écrire des applications pour le Web mais par contre, peut être très intéressante pour écrire des scripts en ligne de commande.

Avertissement
Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Ncurses est disponible sur les plate-formes suivantes :

- AIX

- BeOS

- Cygwin

- Digital Unix (aka OSF1)

- FreeBSD

- GNU/Linux

- HPUX

- IRIX

- OS/2

- SCO OpenServer

- Solaris

- SunOS

# Pré-requis

Vous devez disposer des bibliothèques ncurses et des fichiers d'en-têtes. Téléchargez la dernière version sur le site de ftp://ftp.gnu.org/pub/gnu/ncurses/ ou sur un mirroir GNU.

# Installation

Pour installer cette extension, compilez PHP en mode CGI ou CLI, avec l'option --with-ncurses[=DIR].

# Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier `php.ini`.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable
--- | --- | ---
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

# Types de ressources

Cette extension ne définit aucune ressource.

# Constantes prédefinies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

## Codes d'erreurs

En cas d'erreur, les fonctions ncurses retournent `NCURSES_ERR`.

## Colors

Tableau 2. Constantes de couleurs ncurses

Constante | Signification
--- | ---
`NCURSES_COLOR_BLACK` | Pas de couleur
`NCURSES_COLOR_WHITE` | blanc
`NCURSES_COLOR_RED` | rouge - supporté lorsque le terminal est en mode couleurs
`NCURSES_COLOR_GREEN` | vert - supporté lorsque le terminal est en mode couleurs
`NCURSES_COLOR_YELLOW` | jaune - supporté lorsque le terminal est en mode couleurs
`NCURSES_COLOR_BLUE` | bleu - supporté lorsque le terminal est en mode couleurs
`NCURSES_COLOR_CYAN` | cyan - supporté lorsque le terminal est en mode couleurs
`NCURSES_COLOR_MAGENTA` | magenta - supporté lorsque le terminal est en mode couleurs

## Touches

Tableau 3. Constantes de touches ncurses

Constante | Signification
--- | ---
`NCURSES_KEY_F0` - `NCURSES_KEY_F64` | Touches de fonctions F1 - F64
`NCURSES_KEY_DOWN` | flèche vers le bas
`NCURSES_KEY_UP` | flèche vers le haut
`NCURSES_KEY_LEFT` | flèche vers la gauche
`NCURSES_KEY_RIGHT` | flèche vers la droite
`NCURSES_KEY_HOME` | touche home (vers le haut + flèche vers la gauche)
`NCURSES_KEY_BACKSPACE` | retour en arrière
`NCURSES_KEY_DL` | efface une ligne
`NCURSES_KEY_IL` | insère une ligne
`NCURSES_KEY_DC` | efface un caractère
`NCURSES_KEY_IC` | insère un caractère, ou bien passe en mode insertion
`NCURSES_KEY_EIC` | termine le mode insertion
`NCURSES_KEY_CLEAR` | efface l'écran
`NCURSES_KEY_EOS` | efface l'écran jusqu'en bas
`NCURSES_KEY_EOL` | efface l'écran jusqu'à la fin de la ligne
`NCURSES_KEY_SF` | scrolle une ligne vers le bas
`NCURSES_KEY_SR` | scroll une ligne vers le haut
`NCURSES_KEY_NPAGE` | page suivante
`NCURSES_KEY_PPAGE` | page précédente
`NCURSES_KEY_STAB` | place une tabulation
`NCURSES_KEY_CTAB` | supprime une tabulation
`NCURSES_KEY_CATAB` | supprime toutes les tabulations
`NCURSES_KEY_SRESET` | remise à zéro partielle
`NCURSES_KEY_RESET` | remise à zéro totale
`NCURSES_KEY_PRINT` | imprime
`NCURSES_KEY_LL` | inférieur gauche (sur le pavé numérique)
`NCURSES_KEY_A1` | supérieur gauche (sur le pavé numérique)
`NCURSES_KEY_A3` | supérieur droit (sur le pavé numérique)
`NCURSES_KEY_B2` | centre (sur le pavé numérique)
`NCURSES_KEY_C1` | inférieur gauche (sur le pavé numérique)
`NCURSES_KEY_C3` | inférieur droit (sur le pavé numérique)
`NCURSES_KEY_BTAB` | tabulation arrière
`NCURSES_KEY_BEG` | début
`NCURSES_KEY_CANCEL` | annule
`NCURSES_KEY_CLOSE` | ferme
`NCURSES_KEY_COMMAND` | commande
`NCURSES_KEY_COPY` | copie
`NCURSES_KEY_CREATE` | crée
`NCURSES_KEY_END` | fin
`NCURSES_KEY_EXIT` | quitte
`NCURSES_KEY_FIND` | trouve
`NCURSES_KEY_HELP` | aide
`NCURSES_KEY_MARK` | marque
`NCURSES_KEY_MESSAGE` | message
`NCURSES_KEY_MOVE` | déplace
`NCURSES_KEY_NEXT` | suivant
`NCURSES_KEY_OPEN` | ouvre
`NCURSES_KEY_OPTIONS` | options
`NCURSES_KEY_PREVIOUS` | précédent
`NCURSES_KEY_REDO` | refaire
`NCURSES_KEY_REFERENCE` | référence
`NCURSES_KEY_REFRESH` | rafraîchis
`NCURSES_KEY_REPLACE` | replace
`NCURSES_KEY_RESTART` | redémarre
`NCURSES_KEY_RESUME` | recommence
`NCURSES_KEY_SAVE` | sauve
`NCURSES_KEY_SBEG` | shift et début
`NCURSES_KEY_SCANCEL` | shift et annule
`NCURSES_KEY_SCOMMAND` | shift et commande
`NCURSES_KEY_SCOPY` | shift et copie
`NCURSES_KEY_SCREATE` | shift et crée
`NCURSES_KEY_SDC` | shift et efface un caractère
`NCURSES_KEY_SDL` | shift et efface une ligne
`NCURSES_KEY_SELECT` | selectionne
`NCURSES_KEY_SEND` | shift et fin
`NCURSES_KEY_SEOL` | shift et fin de ligne
`NCURSES_KEY_SEXIT` | shift et quitte
`NCURSES_KEY_SFIND` | shift et trouve
`NCURSES_KEY_SHELP` | shift et aide
`NCURSES_KEY_SHOME` | shift et home
`NCURSES_KEY_SIC` | shift et entrée
`NCURSES_KEY_SLEFT` | shift et flèche vers la gauche
`NCURSES_KEY_SMESSAGE` | shift et message
`NCURSES_KEY_SMOVE` | shift et déplace
`NCURSES_KEY_SNEXT` | shift et suivant
`NCURSES_KEY_SOPTIONS` | shift et options
`NCURSES_KEY_SPREVIOUS` | shift et précédent
`NCURSES_KEY_SPRINT` | shift et imprime
`NCURSES_KEY_SREDO` | shift et refait
`NCURSES_KEY_SREPLACE` | shift et remplace
`NCURSES_KEY_SRIGHT` | shift et flèche vers la droite
`NCURSES_KEY_SRSUME` | shift et recommnence
`NCURSES_KEY_SSAVE` | shift et sauve
`NCURSES_KEY_SSUSPEND` | shift et suspend
`NCURSES_KEY_UNDO` | défait
`NCURSES_KEY_MOUSE` | un événement souris est survenu
`NCURSES_KEY_MAX` | valeur maximale de clé

## Souris

Tableau 4. Constantes de souris

Constante | Signification
--- | ---
`NCURSES_BUTTON1_RELEASED` - `NCURSES_BUTTON4_RELEASED` | bouton (1-4) relaché
`NCURSES_BUTTON1_PRESSED` - `NCURSES_BUTTON4_PRESSED` | bouton (1-4) pressé
`NCURSES_BUTTON1_CLICKED` - `NCURSES_BUTTON4_CLICKED` | bouton (1-4) cliqué
`NCURSES_BUTTON1_DOUBLE_CLICKED` - `NCURSES_BUTTON4_DOUBLE_CLICKED` | bouton (1-4) double cliqué
`NCURSES_BUTTON1_TRIPLE_CLICKED` - `NCURSES_BUTTON4_TRIPLE_CLICKED` | bouton (1-4) triple cliqué
`NCURSES_BUTTON_CTRL` | ctrl pressé durant le clic
`NCURSES_BUTTON_SHIFT` | shift pressé durant le clic
`NCURSES_BUTTON_ALT` | alt pressé durant le clic
`NCURSES_ALL_MOUSE_EVENTS` | indique tous les événements souris
`NCURSES_REPORT_MOUSE_POSITION` | indique la position de la souris

Précédent | Sommaire | Suivant
syslog | Niveau supérieur | ncurses_addch