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をWebページとして使用しています。

4

3 に答える 3

5

PHP を Web スクリプト言語として (コマンド ラインからではなく) 使用していると仮定しています...

私が見てきたことから、クライアント側で Javascript を使用してキー入力を読み取る必要があります。サーバーがページをクライアントに配信すると、PHP とのやり取りはありません。そのため、AJAX を使用してクライアントのキー入力を読み取り、サーバーにコールバックする方法が適しています。

Javascript とキー押下の検出に関する詳細情報がここにあり、AJAX の使用方法に関する情報がここにあります。

jQuery の適切なオプションは、delayedObserverのようなものを使用することです

于 2009-06-02T20:33:49.580 に答える
5

(Web アプリケーションではなく) CLI アプリケーションを作成している場合は、ncurses の getch()関数を使用して単一のキー ストロークを取得できます。幸運を!

CLI アプリケーションを作成していない場合は、Andrew の回答に従うことをお勧めします。

于 2009-06-02T20:52:52.927 に答える
-3

readline を試してください:

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

于 2009-06-02T20:43:34.723 に答える