Signatur
Beschreibung
readline_write_history() speichert die gesamte Eingabehistorie der aktuellen Sitzung in eine Datei auf der Festplatte. Dies ermöglicht es, die History über mehrere Programmaufrufe hinweg zu persistieren, sodass Benutzer in interaktiven CLI-Anwendungen auf frühere Eingaben zugreifen können.
Wird kein Dateiname angegeben, wird standardmäßig die in der Readline-Konfiguration definierte History-Datei verwendet (üblicherweise ~/.history). Die Funktion arbeitet eng mit readline_read_history() zusammen: Mit letzterer kann eine zuvor gespeicherte History zu Beginn einer Sitzung geladen werden.
Typische Einsatzgebiete sind interaktive PHP-CLI-Skripte, REPLs oder Shells, bei denen der Komfort der Kommandozeilenhistorie gewünscht wird. Die Funktion steht nur zur Verfügung, wenn PHP mit Readline-Unterstützung kompiliert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename | string | Pfad zur Datei, in die die History geschrieben werden soll. Wird kein Pfad angegeben oder ein leerer String übergeben, wird die Standard-History-Datei des Systems verwendet. |
Rückgabewert
true zurück, wenn die History erfolgreich in die Datei geschrieben wurde, andernfalls false (z. B. bei fehlenden Schreibrechten oder ungültigem Pfad).Beispiele
History am Ende einer interaktiven Sitzung speichern
<?php
// Zuvor gespeicherte History laden
readline_read_history('/tmp/meine_history.txt');
// Interaktive Eingabeschleife
while (true) {
$eingabe = readline('> ');
if ($eingabe === false || strtolower(trim($eingabe)) === 'exit') {
break;
}
readline_add_history($eingabe);
echo 'Eingabe: ' . $eingabe . PHP_EOL;
}
// History am Ende der Sitzung speichern
if (readline_write_history('/tmp/meine_history.txt')) {
echo 'History erfolgreich gespeichert.' . PHP_EOL;
} else {
echo 'Fehler beim Speichern der History.' . PHP_EOL;
}
Automatisches Speichern in Standard-History-Datei
<?php
// Mehrere Eingaben zur History hinzufügen
readline_add_history('ls -la');
readline_add_history('cd /var/www');
readline_add_history('php -v');
// In Standard-Datei schreiben (kein Dateiname = Systemstandard)
$erfolg = readline_write_history();
var_dump($erfolg);
// Wichtig · Fallstricke
Verfügbarkeit: Diese Funktion ist nur verfügbar, wenn PHP mit Readline-Unterstützung kompiliert wurde (Compile-Flag --with-readline). Auf Windows-Systemen steht Readline in der Regel nicht zur Verfügung.
Sicherheit: Achten Sie darauf, dass die History-Datei sensible Eingaben wie Passwörter oder geheime Tokens enthalten kann. Stellen Sie sicher, dass die Datei mit restriktiven Dateiberechtigungen (z. B. 0600) gespeichert wird und nur für den ausführenden Benutzer lesbar ist.
Hinweis: Die Funktion überschreibt den Inhalt der angegebenen Datei vollständig. Eine inkrementelle Erweiterung einer bestehenden Datei ist nicht direkt möglich; verwenden Sie dazu zunächst readline_read_history(), bevor Sie readline_write_history() aufrufen.