readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_install初始化一個 readline 回調(diào)接口,然后終端輸出提示信息并立即返回

說明

readline_callback_handler_install(string $prompt, callable $callback): bool

設(shè)置一個 readline 回調(diào)接口然后輸出 prompt 并立即返回. 第二次調(diào)用這個函數(shù)不需要移除上一個回調(diào)接口,這個函數(shù)將自動覆蓋舊的接口.

當配合 stream_select() 時回調(diào)的特性非常有用,它允許在 IO 與用戶輸入 間交叉進行,不像readline().

參數(shù)

prompt

提示信息.

callback

callback 函數(shù)需要一個參數(shù); 用戶輸入將被返回.

返回值

成功時返回 true, 或者在失敗時返回 false。

范例

示例 #1 Readline Callback Interface Example

<?php
function rl_callback($ret)
{
    global 
$c$prompting;

    echo 
"You entered: $ret\n";
    
$c++;

    if (
$c 10) {
        
$prompting false;
        
readline_callback_handler_remove();
    } else {
        
readline_callback_handler_install("[$c] Enter something: "'rl_callback');
    }
}

$c 1;
$prompting true;

readline_callback_handler_install("[$c] Enter something: "'rl_callback');

while (
$prompting) {
    
$w NULL;
    
$e NULL;
    
$n stream_select($r = array(STDIN), $w$enull);
    if (
$n && in_array(STDIN$r)) {
        
// read a character, will call the callback when a newline is entered
        
readline_callback_read_char();
    }
}

echo 
"Prompting disabled. All done.\n";
?>

參見

  • readline_callback_handler_remove() - 移除上一個安裝的回調(diào)函數(shù)句柄并且恢復終端設(shè)置
  • readline_callback_read_char() - 當一個行被接收時讀取一個字符并且通知 readline 調(diào)用回調(diào)函數(shù)
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by seconds and microseconds