Signatur
Beschreibung
readline_info() gibt Zugriff auf die internen Konfigurationsvariablen der GNU-Readline-Bibliothek. Wird die Funktion ohne Argumente aufgerufen, liefert sie ein assoziatives Array mit allen verfügbaren Variablen und deren aktuellen Werten.
Wird nur $var_name angegeben, gibt die Funktion den aktuellen Wert dieser einzelnen Variable zurück. Werden beide Parameter angegeben, wird die Variable auf den neuen Wert gesetzt und der alte Wert zurückgegeben. Dies ermöglicht ein gezieltes Lesen und Schreiben einzelner Readline-Einstellungen.
Typische Variablen umfassen unter anderem library_version (Version der Readline-Bibliothek), readline_name (Name der Anwendung), line_buffer (aktueller Inhalt des Eingabepuffers), point (aktuelle Cursor-Position im Puffer) sowie done (Signal zum Beenden der aktuellen Readline-Eingabe).
Diese Funktion ist vor allem dann sinnvoll, wenn interaktive CLI-Anwendungen in PHP entwickelt werden und eine feine Steuerung der Benutzereingabe erforderlich ist – etwa in Kombination mit readline_callback_handler_install() oder eigenen Completion-Funktionen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $var_name | string|null | null | Name der abzufragenden oder zu setzenden Readline-Variable (z. B. "line_buffer", "point", "done"). Wird null übergeben oder der Parameter weggelassen, werden alle Variablen als Array zurückgegeben. |
| $value | string|int|bool|null | null | Neuer Wert, der der angegebenen Variable zugewiesen werden soll. Wird nur gesetzt, wenn $var_name ebenfalls angegeben wurde. |
Rückgabewert
- Ohne Argumente: assoziatives
arraymit allen internen Readline-Variablen und deren Werten. - Mit nur
$var_name: aktueller Wert der angegebenen Variable (meiststringoderint). - Mit
$var_nameund$value: alter Wert der Variable vor der Änderung. - Gibt
falsezurück, wenn die angegebene Variable nicht existiert oder ein Fehler auftritt.
Beispiele
Alle Readline-Variablen ausgeben
<?php
// Alle internen Readline-Variablen auflisten
$info = readline_info();
foreach ($info as $key => $val) {
echo str_pad($key, 30) . ' => ' . var_export($val, true) . PHP_EOL;
}
Aktuellen Eingabepuffer lesen und vorbelegen
<?php
// Eingabepuffer mit einem Standardwert vorbelegen
readline_info('line_buffer', 'Hallo Welt');
readline_info('point', strlen('Hallo Welt')); // Cursor ans Ende setzen
$input = readline('Eingabe: ');
echo 'Du hast eingegeben: ' . $input . PHP_EOL;
Readline-Version ermitteln
<?php
// Version der installierten Readline-Bibliothek ausgeben
$version = readline_info('library_version');
echo 'GNU Readline Version: ' . $version . PHP_EOL;
// Wichtig · Fallstricke
Verfügbarkeit: readline_info() ist nur verfügbar, wenn PHP mit der GNU-Readline-Bibliothek kompiliert wurde (--with-readline). Auf Systemen, die stattdessen libedit verwenden, kann der Funktionsumfang eingeschränkt sein. Unter Windows steht Readline standardmäßig nicht zur Verfügung.
Variablennamen: Die Liste der gültigen Variablennamen ist von der Version der Readline-Bibliothek abhängig. Die Verwendung ungültiger Variablennamen führt zur Rückgabe von false, ohne eine E_WARNING auszulösen – daher empfiehlt sich eine explizite Prüfung per === false.
CLI-only: Diese Funktion ist ausschließlich für den CLI-SAPI sinnvoll und hat im Web-Kontext (FPM, Apache-Modul) keine praktische Bedeutung.