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);
}
假设您想编写一个简单的 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);
}