0

我想从 PHP 调用一个 java 类文件,并将文本输出(指示进度)实时显示到用户的浏览器。,和PHP 函数将不起作用,并且 php/java 桥接器似乎有点矫枉过正passthru()。下面的代码(非常简化但自包含)演示了表面上实时返回 java 输出流的函数在这种情况下如何不起作用。在下面的代码中,文本流仅在对 java 的调用完成后出现在浏览器中,即没有实时进度更新。echo()system()passthru()

我已经尝试过这个解决方案,以及其他类似在 Stack Overflow 上建议的解决方案,但无济于事。

在命令仍在运行时从 php exec() 获取结果?

你有什么建议?

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

内页.php:

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

计时器.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