PHP - 检测 STDIO 输入

Ark*_*del 6 php stdio

我想要的是能够有选择地将STDIO 通过管道传输到 PHP 脚本。如果没有,它将从文件中获取输入。所以有时我会简单地运行脚本,有时我会做类似的事情

grep text logfile | php parseLog.php
Run Code Online (Sandbox Code Playgroud)

我有一个非常像这样的循环,当 STDIO 存在时它工作正常:

while (FALSE !== ($line = fgets(STDIN)))
{
        $customLogArr[]=$line;
}
Run Code Online (Sandbox Code Playgroud)

当没有 STDIO 虽然它停止等待一些时,它甚至不会进入循环。

我想要做的是能够检测,如果我有STDIO输入与否。有没有办法做到这一点?

gra*_*sun 1

if(FALSE !== ftell(STDIN))
{
    while (FALSE !== ($line = fgets(STDIN)))
    {
        $customLogArr[]=$line;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于 STDIN,如果无法读取任何内容,ftell()将返回 false。