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 :

[Système] Fonction exec(): Passer plusieurs commandes ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 46
    Points : 46
    Points
    46
    Par défaut [Système] Fonction exec(): Passer plusieurs commandes ?
    Bonjour à tous.
    Après 2-3 heures de recherches, j'en reviens a vous poser une question au sujet de la commande exec de PHP.

    Voici la situation:
    OS : Windows XP
    But : Executer un programme dans un folder différent du working directory.

    Solution ensagée : Spécifier le chemin absolu du répertoire
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd ..\..\..\executable_path\executable_name -arg..
    Problème : L'execution du programme ne fonctionne pas si on ne l'execute pas à partir du répertoire courant. La raison : ce dernier fait appel à deux fichiers de configurations présents dans deux repertoires.
    Voici l'arborescence du programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    executable_path/
    |
    | file_config1
    |
    | -- server/
    |
    |        | -- bin / executable_name
    |        |
    |        | -- config /
    |        |
    |        | file_config2
    Si l'on execute le programme à partir du repertoire courant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    executable_path/server/bin/executable_name -args..
    ==> Marche sans problème!

    Si on l'éxecute d'un repertoire différent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir1/dir2/executable_path/server/bin/executable_name -args..
    ==> Erreur, il ne trouve pas les fichiers de config


    Fin du contexte.

    Donc pour résoudre ce problème, je pense qu'il serait intéressant de se placer dans le répertoire ou se trouve l'exécutable (executable_path/server/bin/) puis de le lancer.
    Sous Unix, cela n'aurais pas posé de problème. Mais sous Windows.. je ne trouve aucun moyen d'executer deux commandes avec la fonction exec!

    J'ai tenté divers moyen permettant de représenter deux commandes distinctes (en banalisant les anti-slash bien sur):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec("cd ..\..\..\executable_path\server\bin \r\n exec_name -args");
    exec("cd ..\..\..\executable_path\server\bin; exec_name -args");
    Mais aucune ne marche (cela ne m'étonne pas vraiment).

    Ma question est donc de savoir comment faire pour spécifier un CRLF qui correspond à un retour à la ligne. Ainsi je pourrais passer deux commandes dans la fonction exec :-).

    Merci d'avance pour vos réponses, idées, etc. ;-)

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    pas sûr de comprendre ton problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd dir1/dir2/executable_path/server/bin/executable_name -args..
    dans tous les cas cette commande ne peut pas marcher tu fais un cd et t'essaie de lancer le prog en même temps ?
    Tu peux tenter de mettre ca dans un .bat ? après il faut que le serveur autorise évidemment l'accès au répertoire à PHP.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 46
    Points : 46
    Points
    46
    Par défaut
    Oups!
    Petite faute d'inatention, escusez moi!

    J'ai résolu mon problème en créant un bat comme tu l'as indiqué.

    Merci! ;-)

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

Discussions similaires

  1. [Système] Fonction exec() et script perl
    Par furtif1 dans le forum Langage
    Réponses: 10
    Dernier message: 18/05/2007, 10h57
  2. [Système] Fonction exec() et assimilées
    Par guidav dans le forum Langage
    Réponses: 4
    Dernier message: 24/04/2007, 10h41
  3. [Système] fonction exec() avec Java
    Par alexK73 dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2007, 17h21
  4. [Système] Fonction qui renvoie plusieurs valeurs
    Par sebhm dans le forum Langage
    Réponses: 6
    Dernier message: 26/01/2007, 08h43
  5. [Système] Fonction exec dans un lien et synthaxe
    Par mLk92 dans le forum Langage
    Réponses: 6
    Dernier message: 13/07/2006, 11h45

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