我想下面使用此代码显示实时PHP程序的输出,但它不工作,它不显示在实时过程中,只显示最后一次输出冲洗不工作
echo "Start...";
for ($i = 0; $i<20; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
echo "Done!";
ob_end_flush();
exit;
我想下面使用此代码显示实时PHP程序的输出,但它不工作,它不显示在实时过程中,只显示最后一次输出冲洗不工作
echo "Start...";
for ($i = 0; $i<20; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
echo "Done!";
ob_end_flush();
exit;
Flush位于PHP
一侧。但是,一些Web服务器有自己的输出缓存。
的IIS
例如有ResponseBufferLimit
选项。直到他们所有的初始DOM内容(不包括像图像等不同的资源),除非页面是非常大的
%windir%\system32\inetsrv\appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0"
大多数浏览器nowdays不会显示该页面。我认为这是为了确保在显示任何内容之前所有的CSS规则都存在。 Heres what the manual says
你的问题不清楚。我以为你直接运行PHP。 如果你通过浏览器运行PHP,这是行不通的。 通过浏览器PHP将运行整个程序,然后服务器页面。它没有任何更新HTML的功能。 你通常使用ajax来做到这一点。
我假设您的代码段实际上是这样的:
<!DOCTYPE html>
<html>
<body>
<?php
echo "My first PHP script!";
?>
</body>
</html>
如果你想这样做在PHP中,你必须弄清楚如何直接运行它。尝试https://stackoverflow.com/a/9520125/5276890。
通过最终输出,你的意思是它一次显示一切(所有的数字)? –
检查这个,你的答案在这里: - http://stackoverflow.com/questions/2837006/ob-start-and-ob-flush-doesnt-work –
@RoyFalk是... – Mohamed