PHP CLI - Evenement clavier

citrouille
Invité n'ayant pas de compte PHPfrance

06 juin 2009, 05:26

Bonjour,
Voilà pour faire simple je cherche à faire un script PHP qui permette d'afficher l'heure tant que l'opérateur n'appuis pas sur espace, puis de stopper la boucle lors de la frappe de la touche espace.
Un truc du genre :
#!/usr/bin/php
while (1) {
echo time();
if ( <frappe au clavier = espace> ) {break;}
}
Je rappelle que je travaille avec PHP CLI.

Merci

Eléphant du PHP | 94 Messages

06 juin 2009, 12:14

Bonjour.
Malheureusement il me semble que ce ne soit pas possible.

Ton code est une idée, mais au lieu de rafraîchir l'heure il va seulement écrire
x fois la même heure à la suite.

De plus, il n'existe pas de fonction main() en PHP, même en CLI, qui serait capable de récupérer les sorties claviers.

Il faudrait que tu te tourne vers un autre langage comme Python ou C (ou autre),
qui t'offre cette possibilité.

Tu peux peut-être y arriver avec l'extension PHP-GTK, mais je n'en suis pas totalement sûr.

citrouille
Invité n'ayant pas de compte PHPfrance

06 juin 2009, 16:53

Merci pour ta réponse geoffroy.
Et moi qui pensait qu'on pouvait tout faire en PHP !
Pour ce qui est du rafraichissement, ce n'est pas ce que je cherche, si le script affiche x fois l'heure (je ne vois pas pourquoi ce devrai être la même) ça me va.

Le problème, mais tu l'avais compris, c'est le
if ( <frappe au clavier = espace> ) {break;} 
Je vais jeter un œil sur PHP-GTK pour voir s'il y a des choses du genre..

Je reste ouvert à tout nouveau commentaire.

De manière plus générale, la question est de savoir si PHP5 sait gérer les évènements clavier(/souris) ...

ViPHP
ViPHP | 1996 Messages

06 juin 2009, 19:20

Si tu veux vraiment faire avec PHP ce n'est pas possible. PHP est un language côté serveur et donc si tu affiche l'heure côté PHP, l'heure côté client sera différente. De plus ce sera l'heure du serveur et pas l'heure du client / visiteur. Diriges toi vers JAVASCRIPT et/ou AJAX cela devrait t'aider.
Le langage JAVASCRIPT est côté client. Il gère très bien les évènements clavier. Pour ce qui est de AJAX, il te permet (en autre) de faire des requêtes serveur dites "asynchrone" i.e. un petit bout de ta page web peut interroger en continue le serveur pour faire ce que tu veux. Ici si une touche est pressée (par exemple "espace"), tu interroges le serveur qui donnera l'heure (du serveur).
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

citrouille
Invité n'ayant pas de compte PHPfrance

08 juin 2009, 04:58

[...] PHP est un language côté serveur [...] JAVASCRIPT est côté client. Il gère très bien les évènements clavier[...].
En fait je travaille avec PHP-CLI ... Donc pas de JavaScript / ajax .