PHP 杂项函数

PHP sapi_windows_vt100_support() 函数用于获取或设置与某个输出缓冲区关联的指定流的 VT100 支持。 Windows 控制台。

如果 enable 为 null,则如果指定的启用了 VT100 控制代码,则该函数返回 true,否则返回 false。

如果enable是布尔值,该函数将尝试启用或禁用指定的VT100功能。如果该功能已成功启用(或禁用),该函数将返回 true,否则返回 false。

启动时,PHP 尝试启用 STDOUT/ 的 VT100 功能STDERR 流。请注意,如果这些流被重定向到文件,则可能无法启用 VT100 功能。

如果启用 VT100 支持,则可以使用 VT100 终端已知的控制序列。它们允许修改终端的输出。在 Windows 上,这些序列称为控制台虚拟终端序列。

注意:此函数使用 Windows 10 API 中实现的 ENABLE_VIRTUAL_TERMINAL_PROCESSING 标志。因此,VT100 功能可能无法在较旧的 Windows 版本上使用。

语法

sapi_windows_vt100_support(stream, enable) 

参数

stream必填。 指定函数将在其上运行的流。
enable可选。 如果设置为 true,则 VT100 功能将启用,否则设置为 false 时将禁用。默认为空。

返回值

如果enable为空,则如果VT100功能返回true已启用,否则为 false。

如果 enable 为布尔值,则成功时返回 true,失败时返回 false。

示例:sapi_windows_vt100_support() 默认状态

默认情况下,STDOUT 和 STDERR 启用 VT100 功能。

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' 
';var_export(sapi_windows_vt100_support(STDERR));" 

上述代码的输出将类似于:

true true 

如果流被重定向,VT100 功能将不会启用:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' 
';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL 

上述代码的输出将类似于:

true false 

示例:sapi_windows_vt100_support() 更改状态

如果流被重定向,则无法启用 STDOUT 或 STDERR 的 VT100 功能。

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' 
';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL 

上述代码的输出将类似于:

true false 

示例:启用 VT100 支持的使用示例

考虑下面的示例,其中显示了启用 VT100 支持的用法。

<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Forgot a lettr.');

//光标向后移动两个字符
fwrite($out, "\033[2D");

//插入一个空格,移动现有的
//右侧文本 -> 忘记字母 r。
fwrite($out, "\033[1@");
fwrite($out, 'e');
?> 

上述代码的输出将是:

Forgot a letter.