fonction exec ou shell_exec lancer depuis un navigateur

fonction exec ou shell_exec lancer depuis un navigateur - PHP - Programmation

Marsh Posté le 30-08-2011 à 22:13:35    

Bonjour
 
  Quand je lance une application depuis la fonction exec ou shell_exec la page php tourne en boucle. à l'arrêt du programme exe la page php s'affiche.
  Comment faire pour que la page php ne reste pas en attente de la fin d'exécution du programme exe ?
 
Merci d'avance


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
Reply

Marsh Posté le 30-08-2011 à 22:13:35   

Reply

Marsh Posté le 31-08-2011 à 10:44:13    

Si ton serveur est sous linux, dans la ligne de commande, met un & à la fin il me semble, c'est pour dire que le shell doit être bloquant et pas attendre la fin de l'exécution de l'exe...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 31-08-2011 à 20:10:02    

serveur sur win xp


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
Reply

Marsh Posté le 31-08-2011 à 20:52:22    

il te faut forker en php dans ce cas !


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 31-08-2011 à 23:00:30    

CyberDenix a écrit :

il te faut forker en php dans ce cas !


 
Pourrais tu me dire ce que cela signifie, merci


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
Reply

Marsh Posté le 01-09-2011 à 20:50:14    

http://php.net/manual/fr/function.pcntl-fork.php
 
http://fr.wikipedia.org/wiki/Fork_(programmation)
 
Cette fonction fonctionne aussi, sauf erreur, sous windows.


Message édité par CyberDenix le 01-09-2011 à 20:51:47

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 01-09-2011 à 22:37:00    

J'avais trouvé cela, mais je vois pas où est mon fichier .bat ou .exe à lancer dans ce code :

Code :
  1. <?php
  2. $pid = pcntl_fork();
  3. if ($pid == -1) {
  4.      die('dupplication impossible');
  5. } else if ($pid) {
  6.      // le père
  7.      pcntl_wait($status); // Protège encore des enfants zombies
  8. } else {
  9.      // le fils
  10. }
  11. ?>

[:azitwaz]


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
Reply

Marsh Posté le 02-09-2011 à 21:20:40    

Tu fais ton system/shell_exec dans le fils, et à la fin du fils tu fais un exit().
 
Dans le père tu continues le process normalement.
 
C'est pour ça que dans le code je mettrais plutot le fils en premier (la tache à executer en background, if (!$pid) {...}), puis le père qui est la branche normale du code.


---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

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