(PHP 7 >= 7.2.0, PHP 8)
sapi_windows_vt100_support — Obtient ou définit le support VT100 pour le flux spécifié associé à un tampon de sortie d'une console Windows.
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).
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.
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.
Version | Description |
---|---|
8.0.0 |
enable est déormais nullable.
|
Exemple #1 Etat par défault de sapi_windows_vt100_support()
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 à :
Exemple #2 sapi_windows_vt100_support() changing state
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.