PHP Conference Japan 2024

readline_list_history

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

readline_list_history列出历史记录

描述

readline_list_history(): 数组

获取整个命令行历史记录。

参数

此函数没有参数。

返回值

返回整个命令行历史记录的数组。元素从零开始用整数索引。

添加注释

用户贡献的注释 2 条注释

5
info () gaj ! design
7 年前
我刚刚注意到,除了这个函数之外,我的 php.exe(PHP 7,Cygwin)可以使用所有 readline 函数。如果能有它就好了,这样就可以筛选重复的行。

因此,为了模拟它,我将历史记录的工作副本保存在一个数组中(是的,额外的代码/数据,但有一些方法可以防止历史记录变得太大)。

加载方式如下

<?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);
}
?>

(可能只想检查最后一条条目是否相同。)
2
匿名
13 年前
请注意,此函数仅在 PHP 使用 libreadline 编译时可用,如果使用 libedit 编译则不可用。

<?php
if (function_exists('readline_list_history')) {
$history = readline_list_history();
// ...
} else {
echo
'编译的库不支持。'.PHP_EOL;
}
?>
To Top