PHP: Как отследить время ожидания отсутствия входных данных? - PullRequest
2 голосов
/ 15 апреля 2020

Существует код, который получает входные строки из STDIN:

#!/usr/bin/php
<?php
while (false !== ($line = fgets(STDIN))) {
      if (preg_match('/start/',$line)) {
         echo $line , "\n";
      }
}
?>

Мой вопрос: как отследить время ожидания отсутствия входных данных на 1 минуту и ​​сообщить, если в случае?

1 Ответ

2 голосов
/ 15 апреля 2020

Я решил мою проблему, используя ответ hek2mgl отсюда [PHP CLI - запросить ввод данных пользователем или выполнить действие после определенного периода времени

Это мой код:

#!/usr/bin/php
<?php
echo "input something ... (5 sec)\n";
$stdin = fopen('php://stdin', 'r');

while(true) {
$read = array($stdin);
$write = $except = array();
$timeout = 5;

    if(stream_select($read, $write, $except, $timeout)) {
          $line = fgets($stdin);
          if (preg_match('/start/',$line)) {
                echo $line , "\n";
          }
    } else {
       echo "you typed nothing\n";
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...