PHPでstdinの内容(EOFまで)を文字列に読み込むにはどうすればよいですか?
自分でそれを理解することになった:
$input_data = file_get_contents("php://stdin");
別の方法は次のとおりです。_stream_get_contents
_を使用して、開いているストリーム(別名ファイルハンドル)からすべてを取得できます。 STDIN
は、fopen('php://stdin')
を呼び出した場合に得られるものと同等のすでに開いているハンドルです(参照: 入力/出力ストリーム
だから:あなたは使うことができます
_$input_data = stream_get_contents(STDIN);
_
これは 受け入れられた答え と同等です。
いくつかのファイル読み取り関数(例:fgets()
、fgetc()
、fscanf()
)を使用し、STDIN
をファイルパス(または_php://stdin
_、PHP)のバージョンがどれだけ新しいかによって異なります。
feof()
を使用してEOFをテストできます。
詳細については、PHP.netの PHPでのコマンドラインプログラミングのリファレンス を参照してください。