Lancer un programme par la fonction exec

Eléphanteau du PHP | 14 Messages

24 mai 2005, 14:32

Est-ce que pour utiliser la fonction exec, il faut mettre une ligne de commande précise ou encore indiquer le chemin dans lequel se trouve notre programme à lancer car j'ai ce morceau de script :

// création cartes NO2
ecriture_trace("début création carte NO2","prev");
exec("creation_cartesNO2prev.bat");
ecriture_trace("fin création carte NO2","prev");
et mon programme en PHP ne lance pas mon .bat.

Quelqu'un aurait-il une solution ?

Merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 14:34

Est-ce que ton .bat se trouve dans le dossier dans lequel se trouve le script PHP ? Si ce n'est pas le cas, il faut que tu lui donne le chemin qui va le mener à ce fichier
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

24 mai 2005, 15:06

oui je suis d'accord avec toi mais malgré çà çà ne fonctionne toujours.
Pour lancer mon programme PHP j'utilise le web local de easy PHP, cela pourrait il venir de çà ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 15:11

Ton script se trouve à la racine de ton serveur ?
Et ton .bat, il se trouve où ?

Et si tu lance ton .bat manuellement, est-ce qu'il fait bien ce que tu veux qu'il fasse ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 14 Messages

24 mai 2005, 15:24

Mon script se trouve dans programme file\easyPHP1.8\www
et mon . bat se trouve dans un autre fichier.
Lorsque je lance .BAT manuellement pas de probleme il fait ce que je veux

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 15:29

SI ton fichier .bat ne se trouve pas dans le même dossier que ton script PHP, c'est normal qu'il ne soit pas exécuter !!!

Il faut que tu remplace le nom de ton fichier dans la fonction exec par le chemin d'accès relatif ou absolu !!!

absolu :

Code : Tout sélectionner

C:/executables/toto.bat
relatif :
si le script est :

Code : Tout sélectionner

c:/EasyPHP/www/script.php
et .bat est :

Code : Tout sélectionner

c:/executables/toto.bat
alors chemin relatif depuis le script est :

Code : Tout sélectionner

../../executables/toto.bat
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 14 Messages

24 mai 2005, 15:39

c'est ce que j'ai fait dans mon script j'ai mis cela :

// création cartes NO2
ecriture_trace("début création carte NO2","prev");
exec("C:\GMT\bin\creation_cartesNO2PREV.bat");
ecriture_trace("fin création carte NO2","prev");
et ce ne fonctionne toujours pas

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 15:45

Et si tu fait
if (is_file("C:\GMT\bin\creation_cartesNO2PREV.bat"))
  echo "fichier existe";
else
  echo "fichier existe pas";
Il te donne quoi ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

25 mai 2005, 11:20

Merci pour ton conseil mais le problème venait du PC donc plus de problème tout fonctionne correctement.

Eléphant du PHP | 406 Messages

25 mai 2005, 11:33

Une question à part
je souhaite automatiser un pg_dump
je peux faire une fonction php qui executer un .bat soit au clique d'un bouton, soit en recupérant l'heure du pc et en la comparant à une variable et si c'est bon j 'execute mon point bat?