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.