Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用IMAP阅读电子邮件,同时显示进度_Php_Mysql_Imap - Fatal编程技术网

Php 使用IMAP阅读电子邮件,同时显示进度

Php 使用IMAP阅读电子邮件,同时显示进度,php,mysql,imap,Php,Mysql,Imap,使用IMAP,我需要读取邮件帐户并将邮件ID保存到MySQL表中,同时用“*”显示进度 我的代码似乎工作正常,但没有产生预期的结果 以下代码部分:- $MC = imap_check($mbox); $result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0); $count = 0; echo "Total - ".$MC->Nmsgs." </br>"; foreach ($result as $overvi

使用IMAP,我需要读取邮件帐户并将邮件ID保存到MySQL表中,同时用“*”显示进度

我的代码似乎工作正常,但没有产生预期的结果

以下代码部分:-

$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>";
    }
}
$MC=imap\U支票($mbox);
$result=imap\u fetch\u overview($mbox,“1:{$MC->Nmsgs}”,0);
$count=0;
echo“总计-”$MC->Nmsgs.
”; foreach($结果作为$overview){ $message\u id=$overview->message\u id; $query=“插入到“$sqltable”(`message\u id`)值(`message\u id')”; $results=mysql\u query($query); $count=$count+1; 回声“*”; 如果($count>=80){ $count=0; 回声“
”; } }
数据库开始使用结果进行更新,但在该过程完成之前,不会显示消息总数和进度指示器“*”

如有任何建议,将不胜感激


谢谢

刷新输出。脚本的输出是缓冲的,您必须明确要求系统在脚本仍在运行时开始将其发送到客户端


当然,您将拥有所有有趣的“细节”,比如必须在保存每条消息之前处理客户端中止时发生的情况等。

您需要刷新输出。有两种方法:

1-关闭内容缓冲,以便立即将其推送到浏览器:

ob_implicit_flush(true);
ob_end_flush();
2-在foreach内部,关闭前}添加代码以将缓冲区发送到浏览器:

flush();
ob_flush();