Bonjour à tous,
j'ai actuellement un logiciel en java que j'exécute en ligne de commande sous unix.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part java -jar LOGICIEL.jar < INPUTFILE > OUTPUTFILE
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.
A l'affichage j'ai ceci :
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;
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 ?
Partager