PHP 中的键盘输入

问题描述 投票:0回答:4

我正在尝试通过键盘输入来控制 PHP 的内容。我目前检测击键的方式是:

 function read() {
    $fp1=fopen("/dev/stdin", "r");
    $input=fgets($fp1, 255);
    fclose($fp1);

    return $input;
}
print("What is your first name? ");
    $first_name = read();

问题在于它没有“实时”读取击键。我不知道使用这种方法是否可行,而且我想这也不是最有效的方法。我的问题是 1)如果这是一个好的方法,那么我怎样才能让它工作,以便当您在页面上键入时,它会捕获击键,以及 2)如果这是一个不好的方法,我怎样才能更好地实现它(也许使用ajax什么的)?

编辑:我使用 PHP 作为网页,而不是命令行。

php keyboard-events
4个回答
5
投票

我假设您使用 PHP 作为网络脚本语言(不是通过命令行)...

据我所知,您需要在客户端使用 Javascript 来读取按键输入。一旦服务器将页面传递给客户端,就不再有 PHP 交互。因此,使用 AJAX 读取客户端按键输入并调用回服务器是正确的方法。

这里有一些关于 Javascript 和检测按键的更多信息,还有一些关于如何使用 AJAX 的信息这里

jQuery 的一个巧妙选择是使用类似

delayedObserver 的东西


4
投票
如果您正在编写 CLI 应用程序(而不是 Web 应用程序),则可以使用

ncurses 的 getch() 函数来获取单个按键。祝你好运!

如果您不编写 CLI 应用程序,我建议遵循 Andrew 的回答。


0
投票
您可以尝试使用

mini4work/lib-io。但是,请注意,它目前正在开发中,尚未经过充分测试。

该库利用 PHP FFI 进行低级 C 调用,以便与系统级输入设备(键盘、鼠标等)进行交互,类似于许多 Python 库用于此类目的。


-3
投票
尝试阅读行:

https://www.php.net/manual/en/function.readline.php

© www.soinside.com 2019 - 2024. All rights reserved.