为stdin提供价值以供在线判断

Ayu*_*bey 14 php stdin

我正在做一个在线评判并遇到一些问题

我到现在为止做了什么?

所以我的PHP代码获取用户代码并将其提供给函数Compile(),该函数编译代码并报告编译是否成功.这部分代码运行得很好.

现在剩下的就是运行代码和评估

我的问题

我的问题是如何处理用户的标准输入.用户通常使用scanf,BufferedReader等从stdin获取输入,这些值通常使用键盘获取.现在假设我已将这些值写入文件中.我将如何为他们提供这些价值.

我的尝试

好吧,我正在寻找各种方式,我遇到了这个

fopen('php://stdin', 'w') 
Run Code Online (Sandbox Code Playgroud)

如果我认为这个工作就像一个文件而不是它会导致问题,如果多个用户在同一时间使用stdin.

Mau*_*lli 5

如果您有已编译的代码并且知道它的语言,那么它会更简单一些.

你可以使用exec函数来执行代码,你可以使用这样的命令(对于ac程序和测试):

$output = array();
exec("./main < sample_input.txt", $output);
Run Code Online (Sandbox Code Playgroud)

如果你现在检查$ output var,它在每个输出的行中都有一个数组条目.

希望这可以帮助.