這個函式似乎不再阻塞了
<?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() 的技巧
它每次呼叫也只讀取一個字元,
因此,如果您的腳本中的其他內容阻塞了,
您就會遇到問題