1

我有一个运行多个连续 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>

...在一切完成之前,这里什么都没有显示。

4

1 回答 1

2

这可能是一个缓冲问题。

flush()在连续的 s 之间执行echo以刷新 PHP 的内部输出缓冲区。

请注意,尽管您的网络服务器可能会进行额外的缓冲,浏览器也可以这样做,因此并不能真正保证更改会显示在浏览器中。

如果您想测试是否涉及其他缓冲,您可以在每次输出后发布一个长 HTML 注释。

例如:

<?php
  echo "<!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... aaa -->";
?>

如果注释足够长,它将填满缓冲区,迫使它刷新。

请注意,这仅用于测试,请勿在生产代码中使用。

于 2012-05-06T14:18:54.407 回答