检测/读取按键,跨平台的PHP CLI

前端之家收集整理的这篇文章主要介绍了检测/读取按键,跨平台的PHP CLI前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个跨平台的 PHP实用程序供个人使用,而不是重新发明任何东西.
代码将在或多或少内运行
while (true) {
    $key = null;
    $key = check_key_pressed();
    if ($key) do_relevant_magic($key);
    usleep(250000);
}

我需要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上有这样的(相当熟知的)扩展. (People tend to recommend自己为pdcurses(至少本身就是跨平台)这样的东西编写绑定,因为显然没有人完成并发布了一个.)

事情正在慢慢进展,至少readline扩展是now available for Windows(从7.1开始),但它恰好只是short of the unbuffered char read功能……

猜你在找的PHP相关文章