Lancer un script perl avec du php - PHP - Programmation
Marsh Posté le 19-03-2004 à 09:49:32
spa très clair ton histoire
ton script, tu dois l'exécuter en ligne de commande ou via un module d'apache?
sinon, à priori, les varaibles url, c'est comme en php '?' et '&'
Marsh Posté le 19-03-2004 à 09:51:56
ben, il était lancé a l'orgine en ligne de commande, avec des arguments.
je voudrais le lancer a travers un navigateur en gardant ces arguments ( -a <toto> -b <titi> ).
j'ai deja essayé avec "lance.php?-a%20<toto>%20-b%20<titi>" mais cela ne fonctionne pas.
Marsh Posté le 19-03-2004 à 10:07:41
j'y ai deja pensé, mais l'interet de lancer mon script dans un navigateur était de récupéré la sortie standard dans le browser, en direct.
Avec exec, ou system, la sortie est retournée dans une chaine ou tableau et ne permet pas une visu de ce que le code renvoye.
L'interet etant que si je constate que mon .pl s'embrouille, je lance avec un bouton un 'kill -9' sur le pid du perl.
Marsh Posté le 19-03-2004 à 10:13:37
question bête mais pourquoi tu modifies pas ton script perl?
Tu modifies la récupération des paramètres et la sortie !
ps: par contre pas compris l'interet du kill -9
Marsh Posté le 19-03-2004 à 10:17:32
JerryZz a écrit : j'y ai deja pensé, mais l'interet de lancer mon script dans un navigateur était de récupéré la sortie standard dans le browser, en direct. |
Si tu fais un echo exec(ta_commande); tu auras bien le résultat dans ton navigateur non ?
Marsh Posté le 19-03-2004 à 10:23:22
oui, mais je l'aurai a la fin de l'execution de la commande.
Ce que je désire c'est de 'suivre' l'execution de mon script.
Mon .pl me balance du texte qui est directement envoyé au navigateur.
Marsh Posté le 19-03-2004 à 10:37:49
en fait si tu veux le passer en CGI ton script en Perl, il faut le modifie pour que les paramètres qu'il reçoit soient des paramètres CGI et non plus des paramètres en ligne de commandes.
Il est long ton script en Perl, tu peux pas le porter en PHP ?
Marsh Posté le 19-03-2004 à 11:40:00
disons qu'en plus d'etre long, il n'est pas portable car il dépasse largement les capacités du php.
Va falloir que je mette les mains dans le camboui :|
Marsh Posté le 19-03-2004 à 11:58:45
Juste pour savoir (je suis curieux ) : à quel niveau dépasse-t-il les capacités de PHP ?
Marsh Posté le 19-03-2004 à 13:47:48
disons que je me vois mal attaquer des Go de logs avec un script php et des ereg ..., même en augmentant le tps d'execution max
Marsh Posté le 19-03-2004 à 14:15:37
ton script en perl, son traitement dure combien de temps ?
Marsh Posté le 19-03-2004 à 14:20:14
ratibus a écrit : ton script en perl, son traitement dure combien de temps ? |
a mon avis il s'en moque vu qu'il le lance(ait) en ligne de commande. Et puis de toute façon c'est sur perl enterre php sur les recherches dans des fichiers...
mais bon perso Jeryzz pour résoudre ton problème j'aurrais plus tendance à rediriger la sortie du script perl dans un fichier texte, executer ton pl toutes les X minutes ( fonction des besoins) grace à la cron et enfin faire un script php qui ne fasse que lire le fichier et afficher les résultats.
A mon avis c'est le plus simple et tu n'aurras jamais de problème de temps d'éxécution, evidement tu n'aurras pas les données à l'instant de la demande mais est-ce vraiment important...
Marsh Posté le 19-03-2004 à 14:30:28
et bien, c'est une idée anapajari, mais justement, avoir l'info en 'temps réel' est mon soucis principal.
Autrement, il y a enormémement de solutions, la plus simple est meme un "system()" ou "exec()"
Marsh Posté le 19-03-2004 à 14:47:52
oui mais ça sera jamais en temps réel... parce que si tu explores vraiment de Go de log, ton script perl doit mettre plusieurs minutes à s'executer, résultat sur l'exec tu ne vas pas obtenir la réponse instantanémenent. Admettons que ton pl mets trois minutes a s'executer.
Entre demander ta page php attendre 3 minutes avant d'avoir le résultat et demander ta page php qui s'affiche instantanément avec des données, au pire, vieilles de 8min ( si tu as mis ta cron sur 5 mins); moi je préfère la 2eme solution.
Avec la 1ere soluition, si en plus plusieurs utilisateurs peuvent demander la page en même temps ton serveur risque de prendre la ouarla...
Marsh Posté le 22-03-2004 à 08:43:31
en fait, non, j'appelle directement le .pl dans mon browser. De ce fait, il pipe directement la sortie std dans la fenetre du navigateur, en tps réel.
Marsh Posté le 17-03-2004 à 10:11:22
Salut tlm,
Newbee en Perl, on vient de me refiler un script a passé dans une page web (php)
j'ai donc rajouté le fameux "Content-type" mais mon script prend des parametres en entrée "-f <toto> -i <titi> ... ".
Comment faire pour passer ces champs dans l'url ?
Merci