如何将stdin的内容(直到EOF)读入PHP中的字符串?

时间:2009-05-05 05:40:55

标签: php stream

如何将stdin的内容(直到EOF)读入PHP中的字符串?

3 个答案:

答案 0 :(得分:61)

最终自己搞清楚了:

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

答案 1 :(得分:6)

使用一些文件阅读功能(例如fgets()fgetc()fscanf())并传入STDIN作为文件路径(或php://stdin,取决于您的PHP版本的新版本。)

您可以使用feof()测试EOF。

有关详细信息,请参阅PHP.net上的reference for command-line programming in PHP

答案 2 :(得分:3)

以下是另一种选择:您可以使用stream_get_contents从开放流中获取所有内容(AKA是文件句柄)。 STDIN是一个已经打开的句柄,相当于拨打fopen('php://stdin')时所获得的内容(参见参考:Input/output streams

所以:你可以使用

$input_data = stream_get_contents(STDIN);

相当于the accepted answer