当我的邮件帐户有一些符合搜索条件的邮件时,它会给出正确的计数。但是,每当根据搜索条件没有消息(消息数量为0)时,它也会将计数返回为' 1'这里是我的代码。给我建议..
$imap = imap_open("{mail.amazepixels.com}INBOX", "mail_id", "password")
or die("can't connect: " . imap_last_error());
$rec = imap_search($imap, 'ON "22 May 2017"');
$rec_count = count($rec);
$ans = imap_search($imap, 'UNANSWERED ON "22 May 2017"');
$ans_count = count($ans);
$seen = imap_search($imap, 'UNSEEN ON "22 May 2017"');
$seen_count = count($seen);
echo $rec_count."-".$ans_count."-".$seen_count;exit;
我刚给出了将来的日期......总是返回计数1
答案 0 :(得分:2)
imap_search()
,则 false
会返回count(false) == 1
。
您可以通过将其更改为:
来解决此问题$ans_count = $ans ? count($ans) : 0;
来自manual:
如果它不理解搜索条件或没有找到任何消息,则返回FALSE。
这是关于计数问题的帖子:Why count(false) return 1?