Есть ли способ чтения из STDIN
в PHP, который не блокируется:
Я пробовал это:
stream_set_blocking(STDIN, false);
echo fread(STDIN, 1);
и это:
$stdin = fopen('php://stdin', 'r');
stream_set_blocking($stdin, false);
echo 'Press enter to force run command...' . PHP_EOL;
echo fread($stdin, 1);
но он все равно блокируется, пока fread
не получит данные.
Я заметил несколько открытых отчетов об ошибках (7 летней давности), так что если это невозможно сделать, знает ли кто-нибудь грубый хак, который мог бы решить эту задачу (на Windows и Linux)?