DeD*_*Dee 7 php keyboard cross-platform input command-line-interface
我正在尝试编写一个跨平台的PHP实用程序供个人使用,而不是重新发明任何东西.代码将在或多或少内运行
while (true) {
$key = null;
$key = check_key_pressed();
if ($key) do_relevant_magic($key);
usleep(250000);
}
Run Code Online (Sandbox Code Playgroud)
我需要一些东西check_key_pressed(),它将返回一个按下的键的值,而不是等待EOF/EOL,直到实际按下任何键才明确要求输入.
这必须在*nix和windows上工作所以ncurses不是一个选项.我也不想exec调用外部vbs或bash脚本,它必须纯粹用PHP完成,希望我不要太多.
编辑:当然我检查了其他SO解决方案,但它们似乎都不是真正的跨平台.Ncrurses并且readline在Windows上不可用,这必须在linux和windows上拦截keydown或keypress或输入就绪.
不幸的是,如果没有类似的 Windows 特定于平台的扩展(例如 *n*x ( readline, ncurses) 的扩展),这是不可能的(直到今天)。
更糟糕的是,即使您放弃跨平台要求,我也怀疑 Windows 上是否有任何此类(相当知名的)扩展。(人们倾向于建议自己编写pdcurses(至少本身是跨平台的)之类的绑定,因为显然还没有人完全完成并发布绑定。)
不过事情进展缓慢,至少该readline扩展现在可用于 Windows(自 7.1 起),但它恰好缺少无缓冲字符读取功能......