2012-03-01 93 views
2

看起来,尽管我已经试图使它起作用,但它不起作用。XAMPP上的PHP输出缓冲

这是我做了什么都:

  1. output_buffering = 4096
  2. 要用zlib.output_compression =关
  3. 使用ob_implicit_flush尝试();
  4. 尝试使用ob_flush();
  5. 减少在ini设置output_buffering缓冲区大小

以下是我试图去上班(主要输出线每隔1秒)的代码,但我” m在15秒后获得整个输出。

随着ob_implicit_flush()

<?php 
ob_implicit_flush(); 

for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    sleep(1); 
} 

使用ob_start()使用ob_flush()方法:

<?php 
ob_start(); 
for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    ob_flush(); 
} 

有没有,我很想念任何其他PHP环境?请帮忙。

编辑:在这太问题使用例如由OP,它的工作原理:PHP buffer why \r\n

我看到,我不得不做str_repeat()来生成一个字符串缓冲区溢出。为什么在php手册中没有提到这一点?这真的是程序吗?

+0

此代码看起来不完整。在样本的上下文中,我看不到对“ob_' *函数集的调用。 – Treffynnon 2012-03-01 21:59:54

+0

对不起,我已经更新了。 – 2012-03-01 22:02:10

回答

1

PHP对请求返回一个响应。如果您在该代码中有sleep()调用,则整个响应将等待这些调用。即使您在print之间放置一秒钟的睡眠,PHP也不会将响应传回给浏览器。

如果您使用PHP作为交互式控制台,那么这可能应该工作,并按照您的预期行事。