debutant: comment recuperer le resultat d'un prog. exterieur
1 réponse
francois.patte
Bonjour,
Je débute en php et je suis largué....
Je voudrais faire exécuter un programme extérieur et récupérer le
résultat dans une variable que je ferai éventuellement traiter par un
autre programme.... et, à la fin, afficher le résultat des différent
traitement.
Le programme s'appelle "devnag" et sa sortie quand on l'applique à un
fichier est un fichier LaTeX que j'aimerais, par la suite faire
traiter par LaTeX.
Le résultat est un fichier "test.tex" dans le répertoire où je
travaille, ça c'est plutôt positif, mais la variable $out ne contient
absolument pas ce fichier!
Ce que j'aimerais, c'est avoir le contenu du fichier "test.tex" dans
une variables et pouvoir recommencer la manip en utilisant LaTeX et
récupérer le résultat pour le renvoyer au navigateur.
Je n'arrive pas! J'ai essayé proc_open ou d'autres fonction, sans
résultat.
Le résultat est un fichier "test.tex" dans le répertoire où je travaille, ça c'est plutôt positif, mais la variable $out ne contient absolument pas ce fichier!
Déjà $out c'ets un pointeur de fichier qu'il faut lire avec fread(). Maitenant ta fonction devnag elle renvoie le résultat ? Cela m'ettonerais qu'elle renvoie le résultat sur stdout et qu'en même temps elle crée le fichier test.tex.
Ce que j'aimerais, c'est avoir le contenu du fichier "test.tex" dans une variables et pouvoir recommencer la manip en utilisant LaTeX et récupérer le résultat pour le renvoyer au navigateur.
Pourquoi tu ne fais pas tout simplement
system("latex test.tex"); read("test.dvi");
? Sinon, esseye de voir si ta fonction devnag ne peut pas renvoyer son résultat sur stdou et si latex ne peut pas prendre sur stdin et renvoyer sur stdout. Cela donnerait :
$out = popen('devnag test.dn | latex'); ...
Quelqu'un peut-il m'aider? Merci.
En récapitulatif, ta fonction ne renvoie rien sur la sortie standard, donc il est normal que tu ne recuperes pas le résultat.
Le résultat est un fichier "test.tex" dans le répertoire où je
travaille, ça c'est plutôt positif, mais la variable $out ne contient
absolument pas ce fichier!
Déjà $out c'ets un pointeur de fichier qu'il faut lire avec fread().
Maitenant ta fonction devnag elle renvoie le résultat ? Cela
m'ettonerais qu'elle renvoie le résultat sur stdout et qu'en même temps
elle crée le fichier test.tex.
Ce que j'aimerais, c'est avoir le contenu du fichier "test.tex" dans
une variables et pouvoir recommencer la manip en utilisant LaTeX et
récupérer le résultat pour le renvoyer au navigateur.
Pourquoi tu ne fais pas tout simplement
system("latex test.tex");
read("test.dvi");
?
Sinon, esseye de voir si ta fonction devnag ne peut pas renvoyer son
résultat sur stdou et si latex ne peut pas prendre sur stdin et renvoyer
sur stdout. Cela donnerait :
$out = popen('devnag test.dn | latex');
...
Quelqu'un peut-il m'aider? Merci.
En récapitulatif, ta fonction ne renvoie rien sur la sortie standard,
donc il est normal que tu ne recuperes pas le résultat.
Le résultat est un fichier "test.tex" dans le répertoire où je travaille, ça c'est plutôt positif, mais la variable $out ne contient absolument pas ce fichier!
Déjà $out c'ets un pointeur de fichier qu'il faut lire avec fread(). Maitenant ta fonction devnag elle renvoie le résultat ? Cela m'ettonerais qu'elle renvoie le résultat sur stdout et qu'en même temps elle crée le fichier test.tex.
Ce que j'aimerais, c'est avoir le contenu du fichier "test.tex" dans une variables et pouvoir recommencer la manip en utilisant LaTeX et récupérer le résultat pour le renvoyer au navigateur.
Pourquoi tu ne fais pas tout simplement
system("latex test.tex"); read("test.dvi");
? Sinon, esseye de voir si ta fonction devnag ne peut pas renvoyer son résultat sur stdou et si latex ne peut pas prendre sur stdin et renvoyer sur stdout. Cela donnerait :
$out = popen('devnag test.dn | latex'); ...
Quelqu'un peut-il m'aider? Merci.
En récapitulatif, ta fonction ne renvoie rien sur la sortie standard, donc il est normal que tu ne recuperes pas le résultat.