[Résolu] executer un fichier et afficher le résultat

executer un fichier et afficher le résultat [Résolu] - PHP - Programmation

Marsh Posté le 19-03-2005 à 17:17:17    

J'aimerais savoir comment exécuter un fichier .exe et retourner le résultat dans une variable (pour être traité).
Mon fichier de test pour l'instant qui est "c:\output.exe" revoie juste "Coucou". Je voudrais que ma variable $buff contienne "Coucou"...
J'ai recherché et j'ai pu écrire ca, mais ca marche pas ($buff contient "2" ) :

Citation :


<?
define ("FIC", "c:\\output.exe" );
passthru (FIC, $buff);
echo($buff);
?>


 
PS : j'utilise passthru car il est possible que je veuille retourner un résultat su plusieur lignes, exec ne serait alors pas adapté. Mais je n'y suis pas arriver non plus avec exec...


Message édité par goodspirit le 21-03-2005 à 22:35:57
Reply

Marsh Posté le 19-03-2005 à 17:17:17   

Reply

Marsh Posté le 19-03-2005 à 17:22:01    

exec("c:\\output.exe > output.txt" );
$buf = file_get_content("output.tx" );


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 17:48:06    

KangOl a écrit :

exec("c:\\output.exe > output.txt" );
$buf = file_get_content("output.tx" );


 
Merci, mais ça marche toujours pas :'( . J'ai éssayé de corriger le bout de code que tu m'a donné (éssayé : dis moi si je me suis trompé) mais j'ai aucun retour...

Citation :


exec("c:\\output.exe > output.txt" );
$buf = file_get_contents("output.txt" );
echo ($buf);

Reply

Marsh Posté le 19-03-2005 à 17:51:55    

Je viens de vérifier mais la commande "c:\output.exe > output.txt" marche parfaitement dans mon interpréteur de commande, mais quand php le fait, ca créé bien un fichier output.txt, mais vide :s :(


Message édité par goodspirit le 19-03-2005 à 17:52:21
Reply

Marsh Posté le 19-03-2005 à 17:53:27    

bon on va essayer comme ca

Code :
  1. exec("c:\\output.exe > c:\\output.txt" );
  2. $buf = file_get_contents("c:\\output.txt" );
  3. echo ($buf);


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 17:55:50    

J'y est déja pensé... Mais c'est un fihier "output.txt" vide qui est créé.
Merci quand même

Reply

Marsh Posté le 19-03-2005 à 18:16:44    

Quelqu'un a une otre idée?
(ou la même mais en corrigant ce qui ne va pas? - Comment cela ce fait-il que le fichier output.txt créé est vide? Une restriction d'Apache? (je sais pas du tout, je cherche...))

Reply

Marsh Posté le 19-03-2005 à 18:22:19    

http://be.php.net/manual/fr/function.exec.php
 
faut lire la doc aussi :o
passe un second paramètre a exec, t'aura toutes les lignes retournées dans un tableau...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 18:28:37    

J'ai essayé aussi, la doc PHP est le premier truc que j'ai regardé : j'avais mis un second argument pour passthru (cf premier message
passthru (FIC, $buff)
mais ca me renvoyé "2" pour sa et "Array" (vide) pour la même ligne avec exec...


Message édité par goodspirit le 19-03-2005 à 18:28:58
Reply

Marsh Posté le 19-03-2005 à 18:53:36    

bha c'est un tableau donc pour l'afficher c'est print_r


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 18:53:36   

Reply

Marsh Posté le 19-03-2005 à 19:05:07    

J'ai tenté aussi mais ca affiche Array ()
(c'est pour ca que j'ai supposé que le tableau renvoyé était vide)
 
exec("c:\\output.exe", $buf2);
print_r ($buf2);
==> Array()

Reply

Marsh Posté le 19-03-2005 à 19:13:03    

bha ca viens de ton programme output.exe pas du php...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 19:16:10    

Mais si je tape output.exe > output.txt dans ma console de commande, mon fichier output.txt contient bien "Coucou" !!! Mon fichier outpout.exe a été fait juste pour testé, il est donc simpl et sans erreurs (j'espére)...

Reply

Marsh Posté le 19-03-2005 à 19:24:00    

t'es sur de pas avoir le safe_mode a "on" ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-03-2005 à 19:27:05    

non, j'ai bien vérifié après avoir lu la doc php (c'est bien le safe_mode du php.ini ?) Merci quand même...

Reply

Marsh Posté le 19-03-2005 à 19:30:13    

oui c'est celui la


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 21-03-2005 à 22:09:23    

ba alors, que puis-je faire ? c'est désepérant !!! lol

Reply

Marsh Posté le 21-03-2005 à 22:11:21    

et avec de la bufferisation de sortie ca pourrait pas le faire ?? jcé pa jdis ca comme ca on c jms ^^

Reply

Marsh Posté le 21-03-2005 à 22:22:24    

Oula, c'est à dire? Je vois pas trop, je vais faire des recherches sur ce sujet, maistu pourrais explicité quand même stp?

Reply

Marsh Posté le 21-03-2005 à 22:25:48    

Ca y est, en regardant vraiment vite fait, j'ai cru comprendre de quoi il s'agissait (faire correspondre le therme bufferisation de sortie" a lanotion que je connaissait déja. Mais je ne comprend pas en quoi cela peut me servir ici ?

Reply

Marsh Posté le 21-03-2005 à 22:39:12    

Ca y est, ca marche. Le problème était que la commande  
exec(output.exe > output.txt);
ne fonctionnait pas. (créait le fichier texte mais ne le remplissait pas).
J'ai résolu mon problème en créant un fichier output.bat qui contient juste
output.exe > output.txt
Et mon code php :
exec("output.bat" );
$buf = file_get_contents("output.txt" );
echo ($buf);
 
et ca y est. Je ne sais pas pourquoi mon ancienne méthode ne marchait pas, :s, mais tant pis, c'est résolu.
Merci a tous pour votre aide...

Reply

Marsh Posté le 22-03-2005 à 15:07:21    

t'es sur qu'il faut échaper le \ de C:\ ??

Reply

Marsh Posté le 23-03-2005 à 00:54:31    

Ba ca me semblait plus logique. Dans tous les cas, j'ai testé avec et sans sans plus de résultat. Maintenant, les répertoires ne sont plus is en absolus donc plus besoin...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed