从STDIN逐行读取而不阻塞

时间:2011-02-11 06:51:56

标签: php stdin

基本上,我想从STDIN读取行,但我不想在等待新数据时阻塞。几乎就像使用超时的流一样。

$stdin = fopen('php://stdin', 'r');

do {
  $line = fgets($stdin);

  // No input right now
  if (empty($line)) {
    // Do something before waiting for more input
  }
} while (1);

1 个答案:

答案 0 :(得分:7)

想出来,使用stream_set_blockingDocs来禁用阻止。没有输入时,将$line设置为false