使用IMAP,我需要阅读一个邮件帐户并将message_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>";
}
}
数据库开始使用结果进行更新,但总消息数和进度指示符&#34; *&#34;在该过程完成之前不会显示..
任何建议都将不胜感激
由于
答案 0 :(得分:0)
刷新输出。脚本的输出是缓冲的,您必须明确要求系统在脚本仍然运行时开始将其发送到客户端。
当然,您将拥有所有有趣的“详细信息”,例如必须处理客户在保存每条消息之前中止时发生的事情等。
答案 1 :(得分:0)
哟需要刷新输出。有两种方法:
1 - 关闭内容缓冲,以便立即将其推送到浏览器:
ob_implicit_flush(true);
ob_end_flush();
2 - 在foreach内部,在关闭之前}添加代码以将缓冲区发送到浏览器:
flush();
ob_flush();