関数・クラス解説

sapi_windows_vt100_support

version:PHP 7 >= 7.2.0 (公式)

Windows コンソールの出力バッファに関連付けられたストリームのVT100サポート状況を取得/設定する

公式リファレンス

書式

sapi_windows_vt100_support ( resource $stream [, bool $enable ] ) : bool

説明

enable が省略されると、 この関数は stream の VT100 制御コードが有効になっている場合に TRUE を返します。 無効になっている場合 FALSE を返します。

enable が指定されると、 この関数は stream の VT100 の機能を 有効/無効 にしようとします。 VT100 の機能が無事有効(または無効)にできた場合、この関数は TRUE を返します。 失敗した場合 FALSE を返します。

起動時に、PHP は STDOUT/STDERR の VT100 の機能を有効にしようとします。これらのストリームがファイルにリダイレクトされると、VT100 の機能は有効にならないかもしれません。

VT100 のサポートが有効な場合、VT100 のターミナルで有効な制御シーケンスが使えます。 これによって、ターミナルの出力を変更できます。Windows では、 これらの制御シーケンスは Console Virtual Terminal Sequence と呼ばれています。

警告

この関数は、Windows 10 API で実装されている ENABLE_VIRTUAL_TERMINAL_PROCESSING フラグを使います。 よって、古いWindowsバージョンでは VT100の機能は有効にならないかもしれません。

パラメータ

stream
この関数で操作するストリーム
enable
この値が指定されると、(TRUE の場合) VT100の機能が有効になり、 (FALSE の場合) 無効になります。

返値

enable が省略されると、 VT100 の機能が有効になっている場合に TRUE を返します。 無効になっている場合 FALSE を返します。 enable が指定されると、成功した場合に TRUE を、失敗した場合に FALSE を返します。

注意

警告 この関数は、Windows 10 API で実装されている ENABLE_VIRTUAL_TERMINAL_PROCESSING フラグを使います。 よって、古いWindowsバージョンでは VT100の機能は有効にならないかもしれません。

サンプル

例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 のサポートを有効にする例

$out = fopen('php://stdout','w'); fwrite($out, 'Just forgot a lettr.'); // カーソルを2文字分左に移動 fwrite($out, "\033[2D"); // 空白をひとつ分挿入し、既存のテキストを右に移動させる -> Just forgot a lett r. fwrite($out, "\033[1@"); fwrite($out, 'e');

上の例の出力は以下となります。

Just forgot a letter.

ワード検索


※入力キーワードが、関数名・説明文・タグに含まれるものを検索

関数名アルファベット別

A B C D E F G H I J
K L M N O P Q R S T
U V W X Y Z _

最終更新一覧

stristr
 大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

stripslashes
 バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

stripos
 大文字小文字を区別せずに文字列が最初に現れる位置を取得する

stripcslashes
 addcslashes() でクォートされた文字列をアンクォートする

strip_tags
 文字列から HTML と PHP のタグを除去して返却

strcspn
 指定した文字が最初に現れる位置を調べる

strcoll
 ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

strcmp
 2つの文字列を比較し同じか(あるいは大小)を判定する

strchr
 strstr() のエイリアス

strcasecmp
 2つの文字列を比較(大文字小文字を区別せず同じとみなす)

カテゴリー一覧

PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール