(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, sinon false.
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ésormais nullable.
|
Exemple #1 Etat par défaut 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 Changement d'état de sapi_windows_vt100_support()
Il ne sera pas possible d'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 Exemple d'utilisation avec le support VT100 activé
<?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.