It seems this function is not blocking anymore:<?phpdo { readline_callback_read_char(); $str = readline_info('line_buffer'); echo '.';} while (strlen($str) < 10);echo PHP_EOL . $str . PHP_EOL;?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
readline_callback_read_char — Читает символ и информирует callback-функцию readline, что получена строка
Читает введённый пользователем символ. Когда строка получена, эта функция информирует callback-функцию интерфейса readline, заданную с помощью readline_callback_handler_install(), что строка готова к вводу.
У этой функции нет параметров.
Функция не возвращает значения после выполнения.
Пример использования интерфейса callback-функций readline смотрите на странице описания функции readline_callback_handler_install().
It seems this function is not blocking anymore:<?phpdo { readline_callback_read_char(); $str = readline_info('line_buffer'); echo '.';} while (strlen($str) < 10);echo PHP_EOL . $str . PHP_EOL;?>
Note that this function is blocking if there is no character to readIf you don`t want to get blocked, you should use the trick with stream_select()It also only reads one char per call,So if something else in your script is blocking,you`ve got a problem