関数・クラス解説
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.
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール