Bonjour à tous,

j'ai actuellement un logiciel en java que j'exécute en ligne de commande sous unix.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java -jar LOGICIEL.jar < INPUTFILE > OUTPUTFILE
J'ai besoin d'intégrer ce logiciel dans une page php afin de récupérer le contenu d'OUPUTFILE et de l'insérer dans une base de données.

J'aimerai éviter de créer le fichier de sortie et récupérer directement son contenu grâce à un pipe pour le traiter dans le logiciel, mais j'avoue que j'ai du louper quelque chose car je n'ai aucun résultat.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 92 $t = array(
 93         0=>array("pipe","r"),
 94         1=>array("pipe","w"),
 95         2=>array("pipe","a")
 96 );
 97
 98 echo "run the process<br/>";
 99
100
101 
102
103 $process = proc_open("java -jar LOGICIEL.jar < ".$seqs." > output.tsv",$t,$pipes);
104
105 echo "théoriquement le process run</br>";
106 
107 
108 if(is_resource($process)){
109         fclose($pipes[0]);
110         echo "stdin fermé<br/>";
111         
112         while($s= fgets($pipes[1], 1024)){
113                 echo $s."</br>";
114         }
115         fclose($pipes[1]);
116         echo "stdout fermé<br/>";
117         
118         while($s = fgets($pipes[2], 1024)){
119                 echo "error : ".$s."<br/>";
120         }
121         fclose($pipes[2]);
122         echo "error fermé";
123  }else echo "ca marche pas";
124
125
126 $return = proc_close($process);
127 echo $return;
A l'affichage j'ai ceci :

fichier seq :
run the process
théoriquement le process run
stdin fermé
stdout fermé
error fermé127

Ca n'est pas trop le résultat que j'attendais ( le contenu de output.tsv affiché)

Est ce que quelqu'un peut m'aiguiller ?