我想读的,一时间从PHP命令行中的一个字符,但它好像有某种输入缓冲从某处防止这种.
考虑以下代码:
#!/usr/bin/php
<?php
echo "input# ";
while ($c = fread(STDIN, 1)) {
echo "Read from STDIN: " . $c . "\ninput# ";
}
?>
Run Code Online (Sandbox Code Playgroud)
键入"foo"作为输入(并按Enter键),我得到的输出是:
input# foo
Read from STDIN: f
input# Read from STDIN: o
input# Read from STDIN: o
input# Read from STDIN:
input#
Run Code Online (Sandbox Code Playgroud)
我期待的输出是:
input# f
input# Read from STDIN: f
input# o
input# Read from STDIN: o
input# o
input# Read from STDIN: o
input#
input# Read from STDIN:
input#
Run Code Online (Sandbox Code Playgroud)
(即,在键入字符时读取和处理字符).
但是,目前,只有在按下输入后才会读取每个字符.我怀疑TTY正在缓冲输入.
最终我希望能够读取按下箭头,向下箭头等按键.