readline_callback_handler_install

Initializes the readline callback interface and terminal, prints the prompt and returns immediately

&reftitle.description; `true` `readline_callback_handler_install` `string` `prompt` `callable` `callback`

Sets up a readline callback interface then prints `prompt` and immediately returns. Calling this function twice without removing the previous callback interface will automatically and conveniently overwrite the old interface.

The callback feature is useful when combined with `stream_select` as it allows interleaving of IO and user input, unlike `readline`.

&reftitle.parameters;

`prompt`

- The prompt message.

`callback`

- The `callback` function takes one parameter; the user input returned.

&reftitle.returnvalues;

&return.true.always;

&reftitle.examples;

### 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, $e, null);
        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";
    ?>

&reftitle.seealso;

- `readline_callback_handler_remove`
- `readline_callback_read_char`
- `stream_select`