Page 1 sur 1
Lancer un programme par la fonction exec
Posté : 24 mai 2005, 14:32
par steph
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
Posté : 24 mai 2005, 14:34
par zeus
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
Posté : 24 mai 2005, 15:06
par Invité
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 çà ?
Posté : 24 mai 2005, 15:11
par zeus
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 ?
Posté : 24 mai 2005, 15:24
par steph
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
Posté : 24 mai 2005, 15:29
par zeus
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 :
relatif :
si le script est :
et .bat est :
alors chemin relatif depuis le script est :
Posté : 24 mai 2005, 15:39
par steph
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
Posté : 24 mai 2005, 15:45
par zeus
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 ?
Posté : 25 mai 2005, 11:20
par Invité
Merci pour ton conseil mais le problème venait du PC donc plus de problème tout fonctionne correctement.
Posté : 25 mai 2005, 11:33
par donny
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?