sapi_windows_vt100_support

(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.

Description

function 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, sinon false.

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ésormais nullable.

Exemples

Exemple #1 Etat par défaut 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 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.
add a note

User Contributed Notes

There are no user contributed notes for this page.