2016-02-06 56 views
2

我想下面使用此代码显示实时PHP程序的输出,但它不工作,它不显示在实时过程中,只显示最后一次输出冲洗不工作

echo "Start..."; 

for ($i = 0; $i<20; $i++){ 
    echo $i; 
    ob_flush(); 
    flush(); 
    sleep(1); 
} 

echo "Done!"; 
ob_end_flush(); 
exit; 
+0

通过最终输出,你的意思是它一次显示一切(所有的数字)? –

+0

检查这个,你的答案在这里: - http://stackoverflow.com/questions/2837006/ob-start-and-ob-flush-doesnt-work –

+0

@RoyFalk是... – Mohamed

回答

0

Flush位于PHP一侧。但是,一些Web服务器有自己的输出缓存。


IIS例如有ResponseBufferLimit选项。直到他们所有的初始DOM内容(不包括像图像等不同的资源),除非页面是非常大的

%windir%\system32\inetsrv\appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0" 
0

大多数浏览器nowdays不会显示该页面。我认为这是为了确保在显示任何内容之前所有的CSS规则都存在。 Heres what the manual says

0

你的问题不清楚。我以为你直接运行PHP。 如果你通过浏览器运行PHP,这是行不通的。 通过浏览器PHP将运行整个程序,然后服务器页面。它没有任何更新HTML的功能。 你通常使用ajax来做到这一点。

我假设您的代码段实际上是这样的:

<!DOCTYPE html> 
<html> 
<body> 

<?php 
    echo "My first PHP script!"; 
?> 

</body> 
</html> 

如果你想这样做在PHP中,你必须弄清楚如何直接运行它。尝试https://stackoverflow.com/a/9520125/5276890