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

作成日: 更新日:

stream_isatty関数は、指定されたストリームリソースが端末(tty)に関連付けられているかどうかを調べる関数です。PHPにおけるストリームとは、ファイル、ネットワークソケット、メモリなどのデータソースを抽象化したもので、これらのデータソースに対して統一的な方法でアクセスできます。

この関数は、システムエンジニアが開発するアプリケーションにおいて、特定の処理を端末からの入力に対してのみ実行したい場合に有用です。例えば、コマンドラインツールにおいて、パイプ処理ではなく、ユーザーが直接端末から入力した場合にのみ、特定のメッセージを表示したり、詳細なログを出力したりするなどの制御が可能です。

具体的には、stream_isatty関数はストリームリソースを引数として受け取り、そのストリームが端末に関連付けられている場合はtrueを、そうでない場合はfalseを返します。ストリームリソースは、fopen関数などで作成されたファイルポインタや、ソケットストリームなどが該当します。この関数を使用することで、スクリプトの実行環境を判断し、それに応じて適切な動作をさせることができます。

例えば、標準入力(STDIN)が端末に関連付けられているかどうかを調べることで、スクリプトが対話的に実行されているのか、それともパイプラインの一部として実行されているのかを判別できます。stream_isatty(STDIN)trueを返す場合は対話的な実行、falseを返す場合はパイプラインの一部としての実行と判断できます。この情報は、アプリケーションの挙動をより柔軟に制御するために活用できます。

基本的な使い方

構文(syntax)

stream_isatty(mixed $stream_or_resource): bool

引数(parameters)

resource $stream

  • resource $stream: ファイルポインタやソケットなどのストリームリソースを指定

戻り値(return)

bool

指定されたストリームが端末デバイスに接続されているかどうかを判定し、接続されていれば true を、そうでなければ false を返します。

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