2

我正在尝试通过键盘输入来控制 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 作为网页,而不是命令行。

4

3 回答 3

5

我假设您使用 PHP 作为 Web 脚本语言(而不是从命令行)...

从我所见,您将希望在客户端使用 Javascript 来读取关键输入。一旦服务器将页面交付给客户端,就没有 PHP 交互。因此,使用 AJAX 读取客户端密钥输入并调用回服务器是可行的方法。

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

jQuery 的一个很好的选择是使用延迟观察者之类的东西

于 2009-06-02T20:33:49.580 回答
5

如果您正在编写 CLI 应用程序(而不是 Web 应用程序),则可以使用ncurses 的 getch()函数来获得单次击键。祝你好运!

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

于 2009-06-02T20:52:52.927 回答
-3

尝试阅读线:

http://us3.php.net/manual/en/function.readline.php

于 2009-06-02T20:43:34.723 回答