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 :

utilisation de "exec"


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 20
    Points : 0
    Points
    0
    Par défaut utilisation de "exec"
    Bonjour, j'ai un problème que je n'arrive pas à résoudre....

    Je teste actuellement un script php qui doit lancer un téléchargement en arrière plan en utilisant wget (sous windows).

    Pour résumer je lance (pour tester, openoffice est suffisament gros pour voir évoluer mon script ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\wget\bin\wget.exe "http://download.services.openoffice.org/files/localized/fr/3.2.1/OOo_3.2.1_Win_x86_install-wJRE_fr.exe" --continue  --tries="10" --random-wait --waitretry="10" --background -P "c:/wamp/www/wgettests/downloads/"
    Lorsque que je teste cette commande dans une console, le téléchargement débute, wget me donne le PID et rend la main.

    Maintenant sous php je lance la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec("{$command}", $output);
    où $command correspond à la commande donnée au dessus. je veux récupérer le PID avec $output.

    Le téléchargement se lance bien (je vois le fichier apparaitre et "grandir" dans le répertoire de destination), mais php ne me rend pas la main, le script tourne en rond sans executer ce qu'il ya derrière le exec...

    Si, en console, je tue le processus wget.exe lancé grâce au script, l'exécution du script php reprend...

    J'ai essayé de rediriger la sortie vers un fichier en mettant un "> stat.file" à la fin de ma commande, comme suggéré par la documentation php pour que la commande exec puisse rendre la main lorque qu'on lance une application en arrière plan, mais ce ne fonctionne pas mieux ....

    Quelqu'un saurait il pourquoi ma commande exec ne rend pas la main alors que ca fonctionne impec en console ??

    Je remercie d'avance toute personne qui pourra m'éclairer sur ce problème...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Je rencontre le même problème.
    J'utilise un exec mais qui charge indéfiniment bien que le traitement demandé soit fini.
    As-tu trouvé une solution?

  3. #3
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Normalement il faudrait fermer la session php avant de faire ça.
    Surtout sur un serveur PHP5-Windows: http://fr.php.net/manual/fr/function.exec.php#99781

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    session_write_close();
    exec("{$command}", $output);
    session_start();
     
    ?>

    Comment gère-tu les sessions ? (si tu en as)
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/11/2006, 18h00

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