PHP:为STDIN /单字符处理添加箭头键支持

Ala*_*orm 5 php stdin readline command-line-interface

在PHP中,我可以使用以下代码从命令行程序读取输入

$stream = STDIN;
$test = fgets($stream);
echo $test;
Run Code Online (Sandbox Code Playgroud)

这适用于简单的输入.但是,如果我尝试使用类似后箭头键的东西,我的shell看起来如下所示

This is a test^[[D^[[D^[[D    
Run Code Online (Sandbox Code Playgroud)

即,箭头键转义序列^[[D被发送到shell.PHP本身将解释箭头键 - 即输入它

This is a test^[[D^[[D^[[D^[[Dsecond test     
Run Code Online (Sandbox Code Playgroud)

会输出这个

This is a second test
Run Code Online (Sandbox Code Playgroud)

但是,我希望shell"正确"(即做我认为他们应该做的事情,而不是我发送的字面)解释箭头键,以便插入点在输入时移动.

这可能在PHP?有扩展吗?没有延期?我尝试了各种变体,fgets($stream, 1)但似乎PHP只是挂起,直到用户输入一个回车键.

Uni*_*rgy 0

纯 PHP 没办法: http: //php.net/fgetc(参见评论)