(PHP 7 >= 7.2.0, PHP 8)
sapi_windows_vt100_support — Obtiene o define el soporte VT100 para el flujo especificado asociado a un búfer de salida de una consola Windows.
Si enable
es null
, la función retorna true
si el flujo stream
tiene los códigos de control VT100 activados, de lo contrario false
.
Si enable
es un bool, la función intentará activar o desactivar las funcionalidades VT100 del flujo stream
.
Si la funcionalidad ha sido activada (o desactivada) con éxito, la función retornará true
, o false
en caso contrario.
Al inicio, PHP intenta activar la funcionalidad VT100 de los flujos STDOUT
/STDERR
. Por cierto, si estos flujos son redirigidos a un fichero, las funcionalidades VT100 pueden no ser activadas.
Si el soporte VT100 está activado, es posible utilizar secuencias de control tal como son conocidas por el terminal VT100. Estas permiten la modificación de la salida del terminal. En Windows, estas secuencias son llamadas secuencias de terminal virtual de consola (Console Virtual Terminal Sequences).
Esta función utiliza el flag ENABLE_VIRTUAL_TERMINAL_PROCESSING
implementado en la API de Windows 10, por lo que la funcionalidad VT100 puede no estar disponible en versiones antiguas de Windows.
Si enable
es null
: retorna true
si la funcionalidad VT100 está activada, de lo contrario false
.
Si enable
es un bool: Devuelve true
en caso de éxito o false
en caso de error.
Versión | Descripción |
---|---|
8.0.0 |
enable ahora es nullable.
|
Ejemplo #1 Estado por defecto de sapi_windows_vt100_support()
php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"
El resultado del ejemplo sería algo similar a:
true true
Además, si un flujo es redirigido, la funcionalidad VT100 no será activada:
php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL
El resultado del ejemplo sería algo similar a:
Ejemplo #2 sapi_windows_vt100_support() cambiando el estado
php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL
El resultado del ejemplo sería algo similar a:
true false
Ejemplo #3 Ejemplo de uso con soporte VT100 activado
<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// mueve el cursor dos caracteres hacia atrás
fwrite($out, "\033[2D");
// Inserta un espacio, desplazando el texto existente hacia la derecha -> Just forgot a lett r.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>
El resultado del ejemplo sería:
Just forgot a letter.