2014-03-02 20 views
1

使用IMAP,我需要閱讀郵件帳戶並保存MESSAGE_ID到MySQL表,而與顯示進度「*」閱讀與IMAP郵件同時顯示進度

我的代碼似乎工作,但它不」噸產生預期的結果在下面..代碼

部分: -

$MC = imap_check($mbox); 

$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0); 

$count = 0; 

echo "Total - ".$MC->Nmsgs." </br>"; 

foreach ($result as $overview) { 

    $message_id = $overview->message_id; 
    $query = "INSERT INTO `$sqltable` (`message_id`) VALUES ('$message_id')"; 
    $results = mysql_query($query); 
    $count = $count +1; 
    echo "*"; 
    if ($count >= 80) { 
    $count = 0; 
    echo "<br>"; 
    } 
} 

數據庫開始的結果更新,然而總的消息計數,並且進度指示器「*」不顯示直到過程是完整的..

任何意見,將不勝感激

由於

回答

0

刷新輸出。腳本的輸出被緩衝,並且您必須明確要求系統在腳本仍在運行時開始將其發送到客戶端。

當然,你將擁有所有有趣的「細節」就像處理當你的客戶中止已保存的每一個消息之前發生了什麼,等

0

呦需要刷新輸出。有兩種方法:

1 - 關閉內容緩衝,以使將其立刻推到瀏覽器:

ob_implicit_flush(true); 
ob_end_flush(); 

2 - 內部的foreach,閉合之前}代碼添加到發送緩衝器到瀏覽器:

flush(); 
ob_flush(); 
相關問題