readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_install锟斤拷始锟斤拷一锟斤拷 readline 锟截碉拷锟接口o拷然锟斤拷锟秸讹拷锟斤拷锟斤拷锟绞撅拷锟较拷锟斤拷锟斤拷锟斤拷锟斤拷锟�

说锟斤拷

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

锟斤拷锟斤拷一锟斤拷 readline 锟截碉拷锟接匡拷然锟斤拷锟斤拷锟� prompt 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷. 锟节讹拷锟轿碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭拷瞥锟斤拷锟揭伙拷锟斤拷氐锟斤拷涌冢锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆讹拷锟斤拷锟角旧的接匡拷.

锟斤拷锟斤拷锟� stream_select() 时锟截碉拷锟斤拷锟斤拷锟皆非筹拷锟斤拷锟矫o拷锟斤拷锟斤拷锟斤拷锟斤拷 IO 锟斤拷锟矫伙拷锟斤拷锟斤拷 锟戒交锟斤拷锟斤拷校锟斤拷锟斤拷锟�readline().

锟斤拷锟斤拷

prompt

锟斤拷示锟斤拷息.

callback

callback 锟斤拷锟斤拷锟斤拷要一锟斤拷锟斤拷锟斤拷; 锟矫伙拷锟斤拷锟诫将锟斤拷锟斤拷锟斤拷.

锟斤拷锟斤拷值

锟缴癸拷时锟斤拷锟斤拷 TRUE锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE锟斤拷

锟斤拷锟斤拷

Example #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() - 锟狡筹拷锟斤拷一锟斤拷锟斤拷装锟侥回碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一指锟斤拷斩锟斤拷锟斤拷锟�
  • readline_callback_read_char() - 锟斤拷一锟斤拷锟叫憋拷锟斤拷锟斤拷时锟斤拷取一锟斤拷锟街凤拷锟斤拷锟斤拷通知 readline 锟斤拷锟矫回碉拷锟斤拷锟斤拷
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec