Je travaille sur un simple site basé sur PHPPHP: Comment attendre un fichier écrit par un script externe d'exister
La structure de base est:
Il faut des données en entrée via un formulaire web, le remet à certains (fonction via le système())
scripts shell à traiter le résultat du traitement est écrit dans un fichier txt
Ce fichier est ensuite lu par le script et affiché dans le navigateur
Il faut environ 2-3 secondes pour générer le fichier txt après le transfert est terminé
Est-il possible de corriger faire PHP attendre que le fichier soit généré?
Actuellement, je mets le script PHP en veille pendant 5 secondes et ensuite lire le fichier existe. Ce n'est évidemment pas une très bonne idée car chaque fois que le script PHP s'exécute, cela prend 5 secondes quel que soit le temps réellement nécessaire.
Runs sur Apache sur Ubuntu si c'est pertinent
Je pensais que 'system()' _does_ attend jusqu'à la fin du processus fils. – Izkata
@Izkata du manuel PHP 'Si un programme est démarré avec cette fonction, afin qu'il continue à tourner en arrière-plan, la sortie du programme doit être redirigée vers un fichier ou un autre flux de sortie. Si vous ne le faites pas, PHP sera bloqué jusqu'à la fin du programme. » Dans mon cas, la sortie est redirigée vers un fichier – Akash
Alors pourquoi ne peux-tu pas bloquer PHP jusqu'à ce que le fichier soit créé? Shell sur les scripts, et quand ils sont dunes, le script PHP va reprendre. – GrandmasterB