Tastatur-Eingabe in PHP
Ich versuche zu kontrollieren, Sachen mit PHP von Tastatur-Eingaben. Die Art, wie ich bin derzeit auf der Erkennung von Tastatureingaben ist mit:
function read() {
$fp1=fopen("/dev/stdin", "r");
$input=fgets($fp1, 255);
fclose($fp1);
return $input;
}
print("What is your first name? ");
$first_name = read();
Das problem ist, dass es nicht das Lesen der Tastenanschläge "live". Ich weiß nicht, ob dies möglich ist, mit dieser Methode, und ich könnte mir vorstellen, dass dies nicht der effektivste Weg, es zu tun. Meine Frage ist, 1) ob dies ein guter Weg, es zu tun, dann wie bekomme ich es zu arbeiten, so dass Sie geben Sie auf der Seite, es wird die Aufnahme der Tastenanschläge, und 2) wenn dies ein schlechter Weg, es zu tun, wie kann ich Sie besser umsetzen (vielleicht mit ajax oder so)?
edit: ich verwende PHP als Webseite, nicht die Kommandozeile.
Machst du das lokal? Erwarten Sie, dass diese arbeiten auf einer web-Seite oder nur über CLI?
Für die Zukunft, falls Sie jemals wollen, schreiben Sie ein CLI-Skript aus: fopen("/dev/stdin", "r") ist sehr Plattform-abhängige, und PHP liefert bereits eine Konstante STDIN eingesetzt werden, um im fread/fgets. Zum Beispiel fgets(STDIN)
InformationsquelleAutor blueintegral | 2009-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gehe davon aus, dass Sie bei Verwendung von PHP als web-Skriptsprache (nicht von der Kommandozeile aus)...
Was ich gesehen habe, werden Sie wollen, um die Verwendung von Javascript auf der client-Seite zu Lesen Schlüssel-Eingänge. Sobald der server liefert die Seite an den client, es gibt keine PHP-Interaktion. Also mit AJAX zu Lesen client key Eingaben und Aufrufe an den server zurück ist der Weg zu gehen.
Gibt es einige weitere Infos über Javascript und die Erkennung von Tastatureingaben hier und einige Informationen, wie man AJAX verwenden,hier.
Eine nette option für die jQuery verwenden, etwa delayedObserver
Er spricht über die "Seite" - und AJAX-also ich nehme an, er ist den Umgang mit einer web-Seite.
Kennt Ihr zufällig einen Ort, wo ich bekommen kann einige javascript-Beispiel, das zu tun? Ich bin immer noch lernen, web-scripting.
Hinzugefügt einen link auf die Antwort... werden Sie wollen, kombinieren Sie die Erkennung von Tastatur-events mit einem AJAX-Aufruf.
Ein ajax-Aufruf ist für jeden Tastendruck, der wahrscheinlich unerwünscht ist -- ,würde das Ergebnis in eine Menge von HTTP-Anforderungen, und die Benutzeroberfläche Latenz. Stattdessen, du bist wirklich gehen zu wollen, zu interpretieren, eine Reihe von Tastatureingaben in javascript, und machen Sie einen einzigen Aufruf, wenn nötig.
InformationsquelleAutor Andrew Flanagan
Wenn Sie schreiben eine CLI-Anwendung (im Gegensatz zu einer web-Anwendung), die Sie verwenden können, ncurses' getch() - Funktion, um einen einzelnen Tastendruck. Viel Glück!
Wenn Sie nicht schriftlich eine CLI-Anwendung, würde ich vorschlagen, folgende Andrew ' s Antwort.
InformationsquelleAutor rodion
Versuchen readline:
http://us3.php.net/manual/en/function.readline.php
Auch die readline-Bibliothek ist nicht verfügbar auf vielen PHP-Standard-Installationen.
InformationsquelleAutor thedz