如何将stdin的内容(直到EOF)读入PHP中的字符串?
答案 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);