PHP Conference Japan 2024

readline_list_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_list_history列出歷史紀錄

說明

readline_list_history(): 陣列

取得完整的命令列歷史紀錄。

參數

此函式沒有參數。

回傳值

回傳一個包含完整命令列歷史紀錄的陣列。元素以從零開始的整數索引。

新增註記

使用者貢獻的筆記 2 則筆記

info () gaj ! design
7 年前
我剛注意到,除了這個函式以外,所有 readline 函式都可以在我的 php.exe (PHP 7, Cygwin) 中使用。如果能有這個函式來篩選重複的行就太好了。

所以為了模擬它,我將歷史紀錄的工作副本保存在一個陣列中(是的,額外的程式碼/資料,但有一些方法可以防止歷史紀錄變得太大)。

載入方式如下

<?php
readline_read_history
(HISTFILE);
$hist = file(HISTFILE,FILE_IGNORE_NEW_LINES);
array_shift($hist);
?>

新增方式如下

<?php
if (!in_array($line,$hist)) {
$hist[] = $line;
readline_add_history($line);
}
?>

(您可能只想檢查最後一個項目是否相同。)
匿名
13 年前
請注意,此函式僅在 PHP 使用 libreadline 編譯時可用,如果使用 libedit 編譯則不可用。

<?php
if (function_exists('readline_list_history')) {
$history = readline_list_history();
// ...
} else {
echo
'編譯的函式庫不支援。'.PHP_EOL;
}
?>
To Top