php Imap_search 总计数 returns 1 当邮件帐户中没有邮件时

php Imap_search count always returns 1 when there is no messages in mail account

当我的邮件帐户中有一些符合搜索条件的邮件时,它会给出正确的计数。但是每当根据搜索条件没有消息(0 条消息)时,它也会 returns 计数为“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;

我刚刚给出了未来的日期..它 returns 计数 1 总是..

imap_search() returns false 如果没有找到消息并且 count(false) == 1

您可以通过将其更改为来修复它:

$ans_count = $ans ? count($ans) : 0; 

来自manual

Return FALSE if it does not understand the search criteria or no messages have been found.

这是关于计数问题的 post:Why count(false) return 1?