2012-03-01 129 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作爲交互式控制檯,那麼這可能應該工作,並按照您的預期行事。