readline_callback_handler_install
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
readline_callback_handler_install — Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
Beschreibung
Initialisiert ein readline-Callback-Interface, gibt danach den
prompt
aus und springt direkt zurück. Der doppelte
Aufruf der Funktion ohne Zurücksetzen des verwendeten Callback-Interfaces
wird automatisch und in geeigneter Weise das alte Interface überschreiben.
Die Callback-Fähigkeiten sind hilfreich, wenn sie mit stream_select() kombiniert werden, da dies eine Verschränkung von IO und Benutzereingaben wie mittels readline() ermöglicht.
Parameter-Liste
-
prompt
-
Die Prompt-Message.
-
callback
-
Die
callback
-Funktion benötigt einen Parameter; die Benutzereingabe wird zurückgegeben.
Rückgabewerte
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Beispiele
Beispiel #1 Readline-Callback-Interface-Beispiel
<?php
function rl_callback($ret)
{
global $c, $prompting;
echo "Sie haben eingegeben: $ret\n";
$c++;
if ($c > 10) {
$prompting = false;
readline_callback_handler_remove();
} else {
readline_callback_handler_install("[$c] Geben Sie etwas ein: ", 'rl_callback');
}
}
$c = 1;
$prompting = true;
readline_callback_handler_install("[$c] Geben Sie etwas ein: ", 'rl_callback');
while ($prompting) {
$w = NULL;
$e = NULL;
$n = stream_select($r = array(STDIN), $w, $e, null);
if ($n && in_array(STDIN, $r)) {
// Liest das aktuelle Zeichen und ruft die Callbackfunktion auf, wenn ein
// Newline-Zeichen eingegeben wurde
readline_callback_read_char();
}
}
echo "Eingabe deaktiviert. Komplett ausgeführt.\n";
?>
Siehe auch
- readline_callback_handler_remove() - Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück
- readline_callback_read_char() - Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde
- stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by seconds and microseconds