我正在尝试让一个交互式程序在 PHP 中运行,现在这在 TTY 中运行良好,只有我只能通过 PTY 对 STDIN/STDOUT 进行一些控制。
只有当我尝试这个时,它才会有一些奇怪的副作用,比如下面的代码,当我在 vim 中输入内容时,我不能再使用它打印的 ESC 键了。
^[
当它开始时还有一些奇怪的字符:
^[[2;2R^[[2;2R^[[>1;4002;0c^[[>1;4002;0c
$cmd = 'vim';
$proc = new \Symfony\Component\Process\Process($cmd);
$proc->setPty(true);
$proc->start();
$proc->wait(function($type, $buffer) use ($proc) {
if (\Symfony\Component\Process\Process::ERR) {
fwrite(STDERR, $buffer);
}
if (\Symfony\Component\Process\Process::OUT) {
fwrite(STDOUT, $buffer);
}
});
那么我怎样才能让这个工作,ESC键表现正常并且对标准输入/标准输出有一些控制呢?