PHP命令行界面。分开读取命令行并将它们保存到数组,直到输入 "exit"

PHP CLI. Reading commands lines separated and save them to array till "exit" entered

假设您想编写一个简单的 PHP 脚本来侦听命令行输入,并允许用户添加未知数量的参数并将这些参数保存到数组中(假设 array_small).这个数组(array_small)将被保存在另一个数组中(我们称它为array_big)。现在完成输入信息的方法是输入 "exit"。

示例:用户将在命令行中输入以下内容:

Jack 20 30 40 30
John 30 40 20
Alex 50 30 1 1
exit

根据示例,array_big 将是这样的

[
 ['Jack', 20, 30, 40, 30], ['John', 30, 40, 20],...
]

实现此目标的最佳方法是什么?

应该有很多例子,但最简单的是:

$fh = fopen('php://stdin', 'r');
$array = array();

while($line = fgets($fh)) {
    if(trim($line) === 'exit') {
        break;
    }
    $array[] = explode(' ', $line);
}
print_r($array);
$lines = []; // or array() for PHP < 5.4

while ($line = trim(fgets(STDIN))) { // trim() to get read of newline
    if($line == 'exit') { break; }
    $lines[] = explode(' ', $line);
}