В принципе, я ищу, чтобы читать строки из 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);
Выяснив это, используйте stream_set_blocking
Docs, чтобы отключить блокировку. Устанавливает $line
в false
когда вход не доступен.