此函数似乎不再阻塞
<?php
do {
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 — 读取一个字符并在收到一行时通知 readline 回调接口
读取一个用户输入的字符。当收到一行时,此函数会通知使用 readline_callback_handler_install() 安装的 readline 回调接口,指示一行已准备好输入。
此函数没有参数。
不返回值。
请参阅 readline_callback_handler_install() 以了解如何使用 readline 回调接口的示例。
此函数似乎不再阻塞
<?php
do {
readline_callback_read_char();
$str = readline_info('line_buffer');
echo '.';
} while (strlen($str) < 10);
echo PHP_EOL . $str . PHP_EOL;
?>
请注意,如果没有任何字符要读取,此函数将阻塞
如果您不想被阻塞,则应使用 stream_select() 的技巧
它每次调用也只读取一个字符,
因此,如果脚本中的其他内容正在阻塞,
您就会遇到问题