我有一个运行多个连续 php/bash 脚本的 html 页面,我想在下一个脚本开始之前使结果在页面上可见。那可能吗?
例子:
<html> <body>
<br>Html1<br>
<?php
echo "A";
sleep(4);
echo "B";
?>
<br>Html2<br>
<?php
echo "C";
sleep(4);
echo "D";
?>
<br>Html3<br>
</body> </html>
...在一切完成之前,这里什么都没有显示。
我有一个运行多个连续 php/bash 脚本的 html 页面,我想在下一个脚本开始之前使结果在页面上可见。那可能吗?
例子:
<html> <body>
<br>Html1<br>
<?php
echo "A";
sleep(4);
echo "B";
?>
<br>Html2<br>
<?php
echo "C";
sleep(4);
echo "D";
?>
<br>Html3<br>
</body> </html>
...在一切完成之前,这里什么都没有显示。
这可能是一个缓冲问题。
flush()
在连续的 s 之间执行echo
以刷新 PHP 的内部输出缓冲区。
请注意,尽管您的网络服务器可能会进行额外的缓冲,浏览器也可以这样做,因此并不能真正保证更改会显示在浏览器中。
如果您想测试是否涉及其他缓冲,您可以在每次输出后发布一个长 HTML 注释。
例如:
<?php
echo "<!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... aaa -->";
?>
如果注释足够长,它将填满缓冲区,迫使它刷新。
请注意,这仅用于测试,请勿在生产代码中使用。