Attente fon d'un programme lancé avec Exec

cedricannecy
Invité n'ayant pas de compte PHPfrance

21 sept. 2015, 15:01

Bonjour,

Je lance ma première question.
Je veux faire une archive ZIP de certain fichiers uploadés sur le serveur de mon site.

J'utilise donc la commande exec :
exec("tar -cf /medias/zip/archive.zip --directory=/medias/zip/ ".$_GET['chemin'], $out, $oky);
if (!$oky) {
//--Ecrire dans un fichier que c'est bon---
echo "$out: Backup Completed!";
} else {
//--Ecrire dans un fichier que c'est KO---
echo "$out: Backup Not Completed!";
}

Mon soucis est le suivant, si j'ai beaucoup de fichier, le traitement peu prendre un peu de temps, ce que je voudrais, c'est connaitre la fin du traitement pour en relancer un autre traitement différent qui dépend du premier.

Comment faire ?

Merci d'avance.

ynx
Mammouth du PHP | 586 Messages

22 sept. 2015, 14:53

Salut,

L'instruction php exec() attend par défaut la fin de l'exécution avant de continuer le script, tu devrais donc pouvoir lancer ton second traitement à la suite de ton code :
// execution du premier traitement
exec("tar -cf /medias/zip/archive.zip --directory=/medias/zip/ ".$_GET['chemin'], $out, $oky);
// fin de l'execution du priemier traitement
if (!$oky) {
//--Ecrire dans un fichier que c'est bon---
echo "$out: Backup Completed!";
} else {
//--Ecrire dans un fichier que c'est KO---
echo "$out: Backup Not Completed!";
}

// execution du second traitement
exec('...');
// fin de l'execution du second traitement
Bonne journée