2009-06-02 17 views
2

私は、キーボード入力からPHPを使って操作をコントロールしようとしています。私は現在のキーストロークを検出しています方法はである: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ページとして使用しています。

+0

Webスクリプト言語として、またはコマンドラインからPHPを使用していますか?私は混乱しています... –

+0

これはローカルですか?これはWebページやCLIを介してのみ動作すると思われますか? – Kekoa

+6

fopen( "/ dev/stdin"、 "r")は非常にプラットフォームに依存しており、PHPはfread/stdinで使用する定数STDINを既に提供しています。 fgets。たとえば、fgets(STDIN) – grawity

答えて

5

私はあなたが上でJavascriptを使用したいと思う、私が見たものから...あなたは(ないコマンドラインから)のWebスクリプト言語としてPHPを使用していること

を想定していますキー入力を読み取ることができます。サーバーがクライアントにページを渡すと、PHPのやりとりはありません。したがって、AJAXを使用してクライアントのキー入力を読み込んでコールをサーバに戻すことは、方法です。

Javascriptとキーの検出の詳細については、hereと、AJAX hereの使用方法に関する情報があります。

jQueryのためのきちんとしたオプションがdelayedObserver

+0

彼はWebインターフェイスを使用していません。彼はPHPのコマンドラインインターフェイスを使用しています。そこにはJavaScript(またはHTML)はありません。 – ceejayoz

+0

彼は「ページ」とAJAXについて語っているので、彼はウェブページを扱っていると思う。 –

+0

これを行うためのサンプルのJavaScriptを入手できる場所を知っていますか?私はまだウェブスクリプトを学んでいます。 – blueintegral

-3

するTry readlineのようなものを使用することです:(ウェブアプリケーションではなく)

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

+0

Readlineは改行をまったく返しませんが、OPは単一のキーストロークに関心があります。 – rodion

+1

また、多くのPHPデフォルトインストールでは、readlineライブラリは利用できません。 – chiborg

4

あなたはCLIアプリケーションを作成する場合は、使用することができますncurses' getch()単一のキーストロークを取得する機能。がんばろう!

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

関連する問題