为什么PHP脚本在任何echo/output之前等待"完成脚本"?

Ema*_*ail 4 php echo

考虑一个简单的脚本

<?php 
echo "hi";
foreach ($_GET['arr'] as $a)
{
 echo $a ."<br>";
}
echo "<p>Masel tov</p>";
foreach ($_GET['arr2'] as $a)
{
 echo $a ."<br>";
}
Run Code Online (Sandbox Code Playgroud)

我希望脚本不断回响.相反,脚本在完成时会一次性回显.hi当脚本完成后,即使是第一个" " 也会在1分钟后回显.

有没有设置来防止这种情况发生或为什么会这样?

ToB*_*oBe 5

根据您的配置,输出将缓存直到完成.你可以使用ob_flush()或强制冲洗flush().遗憾的是,许多现代浏览器也不会更新,直到页面加载完成,无论你多久刷新一次.

PHP输出缓冲的配置设置. http://www.php.net/manual/en/outcontrol.configuration.php


sig*_*igy 3

有一个函数ob_implicit_flush可用于在每次输出调用后启用/禁用自动刷新。不过使用之前先看看PHP手册上的注释。