11

私はphpスクリプトを書きました。インタラクティブに読み取って実行する前に、ttyデバイス(端末)に接続された標準入力で呼び出されたときにヘルプメッセージを表示したいのですが、標準入力としてパイプからのファイルまたはストリームで呼び出されたときに表示されません。

PHPからこれを検出する方法はありますか?

4

2 に答える 2

11

を使用しposix_isattyます。

この関数は、ファイル記述子(整数)とPHPストリームの両方を受け入れます。PHPストリームを受信すると、ファイル記述子を取得して代わりに使用するために、自動的にキャストを試みます。

于 2010-09-06T03:38:54.343 に答える
2

PHP 7.2以降stream_isatty、Windowsでも動作するを使用できます。

例えば:

php -r "var_dump(stream_isatty(STDERR));"

結果は

bool(true)

だが

php -r "var_dump(stream_isatty(STDERR));" 2>output.txt

結果は

bool(false)

(もちろん、これはSTDOUTでも機能します)。

于 2018-03-20T14:24:32.427 に答える