IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancer un bat en PHP dans une boucle


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut Lancer un bat en PHP dans une boucle
    Bonjour,

    Je rencontre un problème et je dois dire que je ne sais pas comment le résoudre...
    Je lance un fichier bat à partir d'une page web, pour le moment rien d'anormal... sauf que je dois le lancer plusieurs fois de suite donc j'ai une boucle et c'est là le problème... Mon bat se lance bien à chaque fois dans ma boucle mais il n'éxecute que la première fois le contenu du bat. Comme s'il lancait le bat sans léxecuter le contenu
    C'est à ni rien comprendre... Quelqu'un a une idée?

    Merci

  2. #2
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    j'essaierai de passer le nombre d'itérations directement au BAT (en argument) afin de délocaliser la boucle dans le BAT.

    sinon, je ne peux pas te dire pourquoi le BAT ne s'exécute pas n fois si tu ne montres pas ton bout de code

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut
    Pour être plus précis dans mon explication, je reçois des mails avec pièces jointes, toujours de la même forme. Donc, quand je lance ma page, je récupère mes mails du serveur et j'extrait la pièce jointe du mail et je traite le fichier reçu. Voici mon code... En fait je vois bien la fenêtre Dos s'ouvrir mais seule ma première pièce jointe est traitée. On dirait que mon bat se lance lors de la deuxième pièce jointe mais n'exécute pas ma commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    $mail = imap_open("{192.168.1.249:110/pop3}", "compte_mail", "compte_mail");
    $folders = imap_listmailbox($mail, "{192.168.1.249:110/pop3}", "*");
    $nbmessages = imap_num_msg($mail);
     
    for($j=$nbmessages;$j<=$nbmessages;$j++)
    {
    	$header = imap_headerinfo($mail,$j);
     
     
    	//Extraction de la structure du message	
    	$struct = imap_fetchstructure($mail,$j);
     
    	//On compte le nombre de partie dans la structure du message
    	if ($struct->type == 1)
    	{
    		$nbrparts = !$struct->parts ? "1" : count($struct->parts);
    	}
     
    	//On place le code binaire de la pièce dans un tableau
    	$piece = array();
     
    	for($h=2;$h<=$nbrparts;$h++)
    	{
    		$part = $struct->parts[1] ;
     
    		//Extraction du code binaire de la pièce jointe
    		$piece = imap_base64(imap_fetchbody($mail,$j,$h));
     
    		//Ouverture du fichier et création s'il n'existe pas
    		$newfichier = fopen("C:/temp/fichier.txt","w+");
     
    		//Ecriture dans le fichier
    		fwrite($newfichier,$piece);
     
    		//Fermeture du fichier
    		fclose($newfichier);
     
    		//Execution du bat
    		$retour_exec = exec('start C:\\Lanceur.bat');
    	}
     
    	//On efface le mail
    	imap_delete($mail, $j);
    	imap_expunge($mail);
    }

  4. #4
    darthmower
    Invité(e)
    Par défaut
    Bonjour,

    Essaye de mettre un sleep() d'un certain nombre de secondes, car cela peut-être dû au faite que le bat n'a pas finis de s'exécuter lorsque tu le relances et il n'aime peut-être pas.

    Gripsou

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut
    Oki, j'avais déjà essayer de mettre un sleep de 5 secondes mais je vais tester de mettre un peu plus... ne sait on jamais

    Merci, je vous tiens au courant!

  6. #6
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 46
    Par défaut
    Oki, ca marche merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau en php dans une boucle
    Par m0h4m3d dans le forum Langage
    Réponses: 5
    Dernier message: 28/12/2014, 15h30
  2. [MySQL] Performance Update PHP dans une boucle
    Par tutomania dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/07/2014, 15h03
  3. [Spip] Insertion de variable PHP dans une boucle
    Par oceane751 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 02/11/2009, 21h03
  4. [MySQL] variable php dans une boucle mysql qui envoit vers un popup
    Par sinifer dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/06/2009, 15h57
  5. [Spip] Récupérer la valeur d'une variable PHP dans une boucle Spip
    Par papisdoums dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 10/04/2009, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo