web-dev-qa-db-ja.com

PHPでstdinの内容(EOFまで)を文字列に読み込むにはどうすればよいですか?

PHPでstdinの内容(EOFまで)を文字列に読み込むにはどうすればよいですか?

38
zak23

自分でそれを理解することになった:

$input_data = file_get_contents("php://stdin");
66
zak23

別の方法は次のとおりです。_stream_get_contents_を使用して、開いているストリーム(別名ファイルハンドル)からすべてを取得できます。 STDINは、fopen('php://stdin')を呼び出した場合に得られるものと同等のすでに開いているハンドルです(参照: 入力/出力ストリーム

だから:あなたは使うことができます

_$input_data = stream_get_contents(STDIN);
_

これは 受け入れられた答え と同等です。

8
bart

いくつかのファイル読み取り関数(例:fgets()fgetc()fscanf())を使用し、STDINをファイルパス(または_php://stdin_、PHP)のバージョンがどれだけ新しいかによって異なります。

feof() を使用してEOFをテストできます。

詳細については、PHP.netの PHPでのコマンドラインプログラミングのリファレンス を参照してください。

6
hbw