【问题标题】:Reading line by line from STDIN without blocking从 STDIN 逐行读取而不阻塞
【发布时间】:2011-06-25 09:07:49
【问题描述】:

基本上,我希望从 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);

【问题讨论】:

    标签: php stdin


    【解决方案1】:

    想通了,使用stream_set_blockingDocs 禁用阻塞。当没有输入可用时,将 $line 设置为 false

    【讨论】:

    • 它仍然在 windows 上阻塞?
    • 我知道这是旧的,但不幸的是,这就是它在 Windows 上不起作用的原因:bugs.php.net/bug.php?id=34972
    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2022-01-02
    • 2015-07-24
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多