我想从 PHP 调用一个 java 类文件,并将文本输出(指示进度)实时显示到用户的浏览器。,和PHP 函数将不起作用,并且 php/java 桥接器似乎有点矫枉过正passthru()
。下面的代码(非常简化但自包含)演示了表面上实时返回 java 输出流的函数在这种情况下如何不起作用。在下面的代码中,文本流仅在对 java 的调用完成后出现在浏览器中,即没有实时进度更新。echo()
system()
passthru()
我已经尝试过这个解决方案,以及其他类似在 Stack Overflow 上建议的解决方案,但无济于事。
你有什么建议?
索引.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);
}
}
}