0

PHP から Java クラス ファイルを呼び出し、(進行状況を示す) テキスト出力をリアルタイムでユーザーのブラウザーに表示したいと考えています。、およびPHP 関数は機能せず、php/java ブリッジはやり過ぎのようですpassthru()。以下のコード (非常に単純化されていますが自己完結型) は、表向きは Java 出力ストリームをリアルタイムで返す関数が、この場合どのように機能しないかを示しています。以下のコードでは、java への呼び出しが完了すると、テキスト ストリームがブラウザにのみ表示されます。つまり、リアルタイムの進行状況の更新はありません。echo()system()passthru()

私はこの解決策を試しましたが、スタックオーバーフローで提案されたような他の人は役に立ちませんでした。

コマンドがまだ実行されている間に php exec() から結果を取得しますか?

何を提案しますか?

index.html:

<html lang="en">    
 <head>
 <meta charset="utf-8" />       
 <script src="jquery.js"></script>                      
 <script type="text/javascript">        
  $(document).on("click","#javacode_button",function(){
$("#java_output").load("innerpage.php",function(responseTxt,statusTxt,xhr){
});     
  });
  </script>     
  </head>
  <body>
    <div id="java_output"></div>
    <input type="Button" id="javacode_button" value="Run Java Code"/>
  </body>
</html>

innerpage.php:

<?php 
   echo 'start process <br>';
   echo passthru('java timer ');    
   echo '<br> end process';
?>

timer.java:

public class timer {
  public static void main(String args[])
    throws InterruptedException {
     for (int i = 0; i <= 100; i++) {
      //Print a message
      System.out.println("Progress = "+i+"% complete");
      //Pause
      Thread.sleep(150);            
    }
  }
}
4

0 に答える 0