【PHP8.x】posix_isatty関数の使い方

作成日: 更新日:

posix_isatty関数は、指定されたファイルディスクリプタが、キーボードやディスプレイなどの端末デバイスに関連付けられているかどうかを判定する関数です。ファイルディスクリプタとは、プログラムがファイルや入出力リソースを操作する際に用いる識別子のことで、例えば標準入力(キーボードからの入力)や標準出力(画面への出力)なども、それぞれにファイルディスクリプタが割り当てられています。

この関数は、引数として調査したいファイルディスクリプタを受け取ります。もしそのファイルディスクリプタが端末デバイスに接続されていれば、戻り値としてブール値のtrueを返します。反対に、ファイルやパイプなどの非端末デバイスに関連付けられている場合はfalseを返します。

この関数は、プログラムが現在、ユーザーのターミナル上で対話的に実行されているのか、それとも別のプロセスによってパイプ経由でデータが渡されているのかなどを判断する際に非常に役立ちます。これにより、プログラムは実行環境に応じて、例えば色のついた出力を提供するかどうかや、対話プロンプトを表示するかどうかといった、適切な動作を決定することができます。

基本的な使い方

構文(syntax)

<?php

$fd = STDIN; // 例えば、標準入力のファイルディスクリプタ
$is_tty = posix_isatty($fd);

if ($is_tty) {
    echo "ファイルディスクリプタは端末デバイスに接続されています。\n";
} else {
    echo "ファイルディスクリプタは端末デバイスに接続されていません。\n";
}

?>

引数(parameters)

resource $file_descriptor

  • resource $file_descriptor: 判定対象のファイルディスクリプタを指定するリソース型変数

戻り値(return)

bool

指定されたファイルディスクリプタが端末デバイスに関連付けられている場合に true を、それ以外の場合に false を返します。

【PHP8.x】posix_isatty関数の使い方 | いっしー@Webエンジニア