sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_supportObtiene o define el soporte VT100 para el flujo especificado asociado a un búfer de salida de una consola Windows.

Descripción

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

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

Advertencia

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.

Parámetros

stream

El flujo sobre el cual la función operará.

enable

Si es bool, la funcionalidad VT100 será activada (si es true) o desactivada (si es false).

Valores devueltos

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.

Historial de cambios

Versión Descripción
8.0.0 enable ahora es nullable.

Ejemplos

Ejemplo #1 Estado por defecto de sapi_windows_vt100_support()

Por omisión, STDOUT y STDERR tienen la funcionalidad VT100 activada.

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:


true false

Ejemplo #2 sapi_windows_vt100_support() cambiando el estado

No será posible activar la funcionalidad VT100 de STDOUT o STDERR si el flujo es redirigido.

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.
add a note

User Contributed Notes

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