微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在传送到PHP进程后如何保持输入流打开?

如何解决在传送到PHP进程后如何保持输入流打开?

PHP进程接受STDIN上的输入时,似乎无法进一步使用输入流。

示例:echo foo | PHP foo.PHP

<?PHP
$file = stream_get_contents(STDIN);
$line = fgets(STDIN);

一旦读取了初始流内容,对fgets(STDIN)的进一步调用将失败,而不是阻止新输入。

使用readline扩展名会产生相同的结果。

我可以通过管道传输到临时文件并从中读取文件解决此问题,但是有没有一种方法可以有效地保持输入流打开或防止输入流到达EOF?

我尝试关闭并重新打开STDIN流,但这不起作用。

我也尝试通过仅读取确切数量的输入字节来抢占EOF。这确实可以防止在流元数据上设置eof标志,但是随后进行的任何读取都会触发EOF,并产生相同的效果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。