기타 sapi_windows_vt100_support
(PHP 7 >= 7.2.0, PHP 8)
sapi_windows_vt100_support — Windows 콘솔의 출력 버퍼와 연결된 지정된 스트림에 대한 VT100 지원을 가져오거나 설정합니다.
설명
sapi_windows_vt100_support(resource $stream
, ?bool $enable
= null
): bool
enable
이 null
이면 스트림 stream
에 VT100 제어 코드가 활성화되어 있으면 함수가 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
enable
이 bool이면 이 함수는 스트림 stream
의 VT100 기능을 활성화하거나 비활성화하려고 시도합니다. 함수가 성공적으로 활성화(또는 비활성화)되면 함수는 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
시작 시 PHP는 STDOUT
/STDERR
스트림의 VT100 기능을 활성화하려고 시도합니다. 그런데 이러한 스트림이 파일로 리디렉션되면 VT100 기능이 활성화되지 않을 수 있습니다.
VT100 지원이 활성화되면 VT100 터미널에서 알려진 대로 제어 시퀀스를 사용할 수 있습니다. 터미널의 출력을 수정할 수 있습니다. Windows에서 이러한 시퀀스를 콘솔 가상 터미널 시퀀스라고 합니다.
경고 이 함수는 Windows 10 API에서 구현된 ENABLE_VIRTUAL_TERMINAL_PROCESSING
플래그를 사용하므로 VT100 기능은 이전 Windows 버전에서 사용하지 못할 수 있습니다.
매개변수
stream
- 함수가 작동할 스트림입니다.
enable
- bool이면 VT100 기능이 활성화되거나(
true
인 경우) 비활성화됩니다(false
인 경우).
반환 값
enable
이 null
인 경우: VT100 기능이 활성화되면 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
enable
이 bool인 경우: 성공하면 true
를, 실패하면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | enable 은 이제 null을 허용합니다. |
Examples
예제 #1 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
예제 #2 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
예제 #3 VT100 지원 사용 예
<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// Moves the cursor two characters backwards
fwrite($out, "\033[2D");
// Inserts one blank, shifting existing text to the right -> Just forgot a lett r.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>
위의 예는 다음을 출력합니다.
Just forgot a letter.