Readline write history: примеры (PHP)
readline_write_history(string $filename = ?): boolФункция readline_write_history в PHP
Функция readline_write_history() сохраняет историю введенных команд в файл. Она применяется в CLI-приложениях, где используется интерактивная строка ввода, для сохранения истории между сеансами.
Функция принимает один необязательный параметр:
- filename (string) - путь к файлу для сохранения истории. Если параметр не указан, используется значение из
readline_list_history()или файл по умолчанию.
Краткие примеры использования
readline_add_history('ls -la');
readline_add_history('php -v');
readline_write_history();readline_write_history('/home/user/.php_cli_history');if (readline_write_history()) {
echo 'История сохранена';
} else {
echo 'Ошибка сохранения';
}Похожие функции в PHP
Загружает историю из файла. Используется вместе с readline_write_history() для работы с постоянным хранилищем.
Добавляет строку в историю текущей сессии. Работает в памяти до вызова функции сохранения.
Очищает историю в текущей сессии. Не затрагивает сохраненные файлы.
Аналоги в других языках
Readline write history в Python
import readline
readline.write_history_file('history.txt')const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({input: process.stdin});
let history = [];
rl.on('line', (line) => {
history.push(line);
fs.writeFileSync('history.txt', history.join('\n'));
});history -w ~/.bash_historyТипичные ошибки
if (!function_exists('readline_write_history')) {
die('Расширение readline не установлено');
}readline_write_history('/root/history.txt');
// Результат: false при отсутствии правОшибка сохранения
readline_write_history('/несуществующая/директория/file.txt');Изменения в версиях PHP
В PHP 8.0.0 функция была изменена для возврата типа bool. В предыдущих версиях возвращаемое значение не было строго типизировано.
Возвращала true при успехе, но могла возвращать различные значения при ошибках.
Всегда возвращает bool (true при успешном сохранении, false при ошибке).
Расширенные примеры использования
function saveHistoryWithLimit($filename, $limit = 100) {
$history = readline_list_history();
if (count($history) > $limit) {
$history = array_slice($history, -$limit);
readline_clear_history();
foreach ($history as $item) {
readline_add_history($item);
}
}
return readline_write_history($filename);
}
saveHistoryWithLimit('history.log', 50);class CliShell {
private $historyFile;
public function __construct($historyFile) {
$this->historyFile = $historyFile;
if (file_exists($historyFile)) {
readline_read_history($historyFile);
}
}
public function run() {
while (true) {
$line = readline('CMD> ');
if ($line === 'exit') break;
readline_add_history($line);
readline_write_history($this->historyFile);
echo 'Выполнено: ' . $line . PHP_EOL;
}
}
}
$shell = new CliShell('my_cli.log');
$shell->run();function saveFilteredHistory($filename) {
$history = readline_list_history();
$filtered = array_filter($history, function($item) {
return !str_contains($item, 'password') && !str_contains($item, 'secret');
});
readline_clear_history();
foreach ($filtered as $item) {
readline_add_history($item);
}
return readline_write_history($filename);
}PHP readline_write_history function comments
- Php readline write history - аргументы и возвращаемое значение
- Функция php readline_write_history - описание
- readline write history - примеры
- readline write history - похожие методы на php
- readline_write_history на js, python, mysql
- readline write history изменения php
- Примеры readline_write_history на php