加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:56:29 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试编写一个跨平台的 PHP实用程序供个人使用,而不是重新发明任何东西. 代码将在或多或少内运行 while (true) { $key = null; $key = check_key_pressed(); if ($key) do_relevant_magic($key); usleep(250000);} 我需要check_key_pressed()的一些东西
我正在尝试编写一个跨平台的 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功能……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读