从终端读取php中的输入

时间:2018-01-16 09:49:51

标签: php

我想在php中读取以下输入,该输入是在termial

中输入的
3
5  
1 4 0 2 5  
2 0 5 1 4  
4  
1 1 7 2
1 13 2 1 
3
3 1 7
2 5 4 

其中:

  • 输入的第一行包含一个整数T,它是数字 测试案例。
  • 每个测试用例的第一行包含一个整数n 表示两个数组的大小。
  • 每个测试用例的第二行和第三行包含n个空格 分开的整数,它们是第一个和第二个的元素 数组分别。

我是PHP的新手,有人能解释一下阅读输入的代码逻辑吗?

我不想将输入存储在文件中并从那里读取。

任何帮助都会很明显,谢谢。

2 个答案:

答案 0 :(得分:1)

要检索通过终端传递给脚本的输入,您可以使用$argv变量。

例如,如果你在终端写道:

php -q /path/script.php one two three

var_dump($argv);命令将显示:

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "one"
  [2]=>
  string(4) "two"
  [3]=>
  string(4) "three"
}

所以,要获得第一个,你可以简单地写一下:

$first = $argv[1]; // it will be one 

答案 1 :(得分:0)

function read_from_console ($prompt = '') {
    if ( function_exists('readline') ) { 
        $line = trim(readline($prompt));
        if (!empty($line)) {
            readline_add_history($line);
        }
    } else {
        echo $prompt;
        $line = trim(fgets(STDIN));
    }
    return $line;
}

$values = preg_split('/\s+/', trim(read_from_console()));