有没有办法显示半载html或php

时间:2012-05-06 14:17:10

标签: php html sleep browser-refresh

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

......在完成所有事情之前,没有显示任何内容。

1 个答案:

答案 0 :(得分:2)

这可能是一个缓冲问题。

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

请注意,您的网络服务器可能会执行额外的缓冲,浏览器也可以执行此操作,因此无法保证更改将在浏览器中显示。

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

例如:

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

如果评论足够长,它将填充缓冲区,迫使它冲洗。

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