Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1328 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1018487
goodspirit
Posté le 19-03-2005 à 17:17:17  profilanswer
 

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
mood
Publicité
Posté le 19-03-2005 à 17:17:17  profilanswer
 

n°1018491
KangOl
Profil : pointeur
Posté le 19-03-2005 à 17:22:01  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1018511
goodspirit
Posté le 19-03-2005 à 17:48:06  profilanswer
 

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);

n°1018515
goodspirit
Posté le 19-03-2005 à 17:51:55  profilanswer
 

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
n°1018516
KangOl
Profil : pointeur
Posté le 19-03-2005 à 17:53:27  profilanswer
 

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...
n°1018520
goodspirit
Posté le 19-03-2005 à 17:55:50  profilanswer
 

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

n°1018532
goodspirit
Posté le 19-03-2005 à 18:16:44  profilanswer
 

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...))

n°1018535
KangOl
Profil : pointeur
Posté le 19-03-2005 à 18:22:19  profilanswer
 

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...
n°1018540
goodspirit
Posté le 19-03-2005 à 18:28:37  profilanswer
 

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
n°1018552
KangOl
Profil : pointeur
Posté le 19-03-2005 à 18:53:36  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
mood
Publicité
Posté le 19-03-2005 à 18:53:36  profilanswer
 

n°1018560
goodspirit
Posté le 19-03-2005 à 19:05:07  profilanswer
 

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()

n°1018567
KangOl
Profil : pointeur
Posté le 19-03-2005 à 19:13:03  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1018571
goodspirit
Posté le 19-03-2005 à 19:16:10  profilanswer
 

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)...

n°1018577
KangOl
Profil : pointeur
Posté le 19-03-2005 à 19:24:00  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1018578
goodspirit
Posté le 19-03-2005 à 19:27:05  profilanswer
 

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...

n°1018580
KangOl
Profil : pointeur
Posté le 19-03-2005 à 19:30:13  profilanswer
 

oui c'est celui la


---------------
Nos estans firs di nosse pitite patreye...
n°1020305
goodspirit
Posté le 21-03-2005 à 22:09:23  profilanswer
 

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

n°1020309
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 22:11:21  profilanswer
 

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

n°1020320
goodspirit
Posté le 21-03-2005 à 22:22:24  profilanswer
 

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

n°1020327
goodspirit
Posté le 21-03-2005 à 22:25:48  profilanswer
 

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 ?

n°1020338
goodspirit
Posté le 21-03-2005 à 22:39:12  profilanswer
 

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...

n°1021017
benamoubea​ch
tivuplai
Posté le 22-03-2005 à 15:07:21  profilanswer
 

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

n°1021654
goodspirit
Posté le 23-03-2005 à 00:54:31  profilanswer
 

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...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
Copier un fichier en CExecuter un code java
Comment lire un fichier aps...??Lire un fichier PDF
modifier des données dans un fichier de données en perl?[Résolu ] - VBS - Comment concaténer
[Résolu][ASP.NET][C#] Rajouter une couche apres le DataBind[Access][Résolu] Impossible de modifier des données
[Access] [résolu] Affichage de donnéesc fichier
Plus de sujets relatifs à : [Résolu] executer un fichier et afficher le résultat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR