Lancer un script perl avec du php

Lancer un script perl avec du php - PHP - Programmation

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

Reply

Marsh Posté le 17-03-2004 à 10:11:22   

Reply

Marsh Posté le 19-03-2004 à 09:45:08    


up ?
 
 
[:the time]

Reply

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 '&' [:proy]


Message édité par dropsy le 19-03-2004 à 09:49:46
Reply

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.

Reply

Marsh Posté le 19-03-2004 à 10:06:37    

sinon utilise la commande exec()

Reply

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.


Message édité par JerryZz le 19-03-2004 à 10:09:50
Reply

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
 


Message édité par anapajari le 19-03-2004 à 10:14:52
Reply

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.
 
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.


Si tu fais un echo exec(ta_commande); tu auras bien le résultat dans ton navigateur non ?

Reply

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.

Reply

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 ?

Reply

Marsh Posté le 19-03-2004 à 10:37:49   

Reply

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 :|

Reply

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 ?

Reply

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

Reply

Marsh Posté le 19-03-2004 à 14:15:37    

ton script en perl, son traitement dure combien de temps ?

Reply

Marsh Posté le 19-03-2004 à 14:20:14    

ratibus a écrit :

ton script en perl, son traitement dure combien de temps ?


 :sweat:  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...

Reply

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()"


---------------
http://www.jerryzz.fr
Reply

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...


Message édité par anapajari le 19-03-2004 à 14:50:29
Reply

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.


---------------
http://www.jerryzz.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed