PHP 8.4.2 Released!

sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_supportObtient ou définit le support VT100 pour le flux spécifié associé à un tampon de sortie d'une console Windows.

Description

sapi_windows_vt100_support(resource $stream, ?bool $enable = null): bool

Si enable est null, la fonction retourne true si le flux stream a les codes de contrôle VT100 activés, sinon false.

Si enable est un bool, la fonction essaiera d'activer ou de désactiver les fonctionnalités VT100 du flux stream. Si la fonctionnalité a été activée (ou désactivée) avec succès, la fonction renverra true, ou false sinon.

Au démarrage, PHP essaie d'activer la fonctionnalité VT100 des flux STDOUT/STDERR. Soit dit en passant, si ces flux sont redirigés vers un fichier, les fonctionnalités VT100 peuvent ne pas être activées.

Si le support VT100 est activé, il est possible d'utiliser des séquences de contrôle telles qu'elles sont connues du terminal VT100. Elles permettent la modification de la sortie du terminal. Sur Windows, ces séquences sont appelées séquences de terminal virtuel de console (Console Virtual Terminal Sequences).

Avertissement

Cette fonction utilise le drapeau ENABLE_VIRTUAL_TERMINAL_PROCESSING implémenté dans l'API Windows 10, donc la fonctionnalité VT100 peut ne pas être disponible sur les anciennes versions de Windows.

Liste de paramètres

stream

Le flux sur lequel la fonction va opérer.

enable

Si bool, la fonctionnalité VT100 sera activée (si true) ou désactivée (si false).

Valeurs de retour

Si enable est null: retourne true si la fonctionnalité VT100 est activée, sinonfalse.

Si enable est un bool: Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 enable est déormais nullable.

Exemples

Exemple #1 Etat par défault de sapi_windows_vt100_support()

Par défaut, STDOUT et STDERR ont la fonctionnalité VT100 activée.

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"

Résultat de l'exemple ci-dessus est similaire à :

true true

De plus, si un flux est redirigé, la fonctionnalité VT100 ne sera pas activée:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL

Résultat de l'exemple ci-dessus est similaire à :


true false

Exemple #2 sapi_windows_vt100_support() changing state

Vous ne pourrez pas activer la fonctionnalité VT100 de STDOUT ou STDERR si le flux est redirigé.

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL

Résultat de l'exemple ci-dessus est similaire à :

true false

Exemple #3 Example usage of VT100 support enabled

<?php
$out
= fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// bouge le curseur de deux caractères en arrière
fwrite($out, "\033[2D");
// Insère un blanc, décalant le texte existant vers la droite -> Just forgot a lett r.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>

L'exemple ci-dessus va afficher :

Just forgot a letter.
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top