Bonjour,
j'ai un petit problème.
Depuis une page en php je lance un script en python et j'affiche le résultat.php
//Lancement du script
$date = preg_replace('/([0-9]{2}).([0-9]{2}).([0-9]{4})/', '\\3\\2\\1', $date);
$commande = "python /var/www/devel/liasses/traitement.py -d $date 1>/dev/stdout 2>/dev/stdout";
$execution = passthru($commande);
ça fonctionne bien, mais php attend la fin de l'exécution de mon script python pour remonter les résultats.
traitement.py modifie des fichiers pdf (c'est des plans, il rajoute un numéro d'ordre de fabrication puis fait un gros pdf avec tous les plans à imprimer) donc le script prend quelques minutes pour s'exécuter.
Le truc c'est que j'aurais voulut afficher en temps réel ce qu'il fait, quand je le lance dans le shell, le script m'affiche ligne après ligne les résultats qu'il trouve.
En php il m'affiche tout en bloc une fois qu'il à finis de travailler.
j'ai le même problème avec exec et system, existe t'il un moyen de remonter les résultats au fur à mesure que mon script python les sorts ?
Je vous remercie d'avance
# popen ?
Posté par pralines . Évalué à 2.
http://www.php.net/manual/fr/function.popen.php
Envoyé depuis mon Archlinux
[^] # Re: popen ?
Posté par Ecran Plat (site web personnel) . Évalué à 1.
J'avais essayé,
mais ça marchait pas (tous venait à la fin)
# En coyotant
Posté par ze_lionix (site web personnel) . Évalué à 1.
Pas brut de décofrage non… Par contre
Piste de coyote n°1
- Faire tourner l'exec en background. qui crache dans un fichier de log…
- Faire un meta refresh pour avoir un affichage régulier mais un peu sacaddé je te le concède, ca va pas être sexy… Peux être une surcouche à ajouter en js…
Piste de coyote n°2 prometteuse ?
Faire tourner ca dans un shell web… comme anyterm ou ajaxterm ?
Fuse : j'en Use et Abuse !
[^] # Re: En coyotant
Posté par Ecran Plat (site web personnel) . Évalué à 2.
Merci
nickel pour la piste coyote n°1.
J'ai modifié mon script python pour qu'il enregistre les sorties dans un fichier texte.
et depuis le navigateur je lis avec un peut de js ce fichier.
Pour le JS j'ai utilisé ce script si ça peut intéresser quelque.
En fait c'est pour un intranet, ça permet à une secrétaire de gagner 1h sur un boulot ingrat (imprimer une liste de pdf).
# Et simplement en n'utilisant pas de buffer ?
Posté par sputnick (site web personnel, Mastodon) . Évalué à 1.
Salut,
a tu simplement essayé de mettre -u à ton shebang ?
La plupart des "vrais langages de programmation" (comprendre autre que shell) utilise un buffer par défaut.
Ça coûte pas plus cher de tester ?! ;)
On ne peut pas mettre d'array dans le string...
[^] # Re: Et simplement en n'utilisant pas de buffer ?
Posté par Ecran Plat (site web personnel) . Évalué à 1.
Salut
ça marche pas, j'ai utilisé le tuyau de ze_lionix
Merci quand même.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.